A Comparative Analysis of Execution Performance Between Python and C++ in Computational Applications
Received: July 15, 2026 | Accepted: July 15, 2026 | Published: July 15, 2026
Abstract
The selection of an appropriate programming language for computational tasks remains a critical decision in software engineering, directly impacting execution efficiency, energy consumption, and developer productivity. This study presents a comprehensive comparative analysis of Python and C++, two of the most widely adopted programming languages in contemporary software development. Through systematic examination of execution benchmarks, memory management paradigms, energy efficiency metrics, and developer productivity indicators, this research quantifies the performance differential between these languages across diverse computational workloads. Our findings indicate that C++ consistently outperforms Python in raw execution speed by factors ranging from 10x to over 100x in computationally intensive tasks, while Python demonstrates superior developer productivity metrics and competitive performance when leveraging optimized libraries such as NumPy and just-in-time compilation technologies. The results further reveal that compiled Python variants (Codon, PyPy, Numba) can narrow this performance gap by over 90% in specific computational domains. This study provides empirical evidence to guide language selection decisions based on application requirements, performance constraints, and development resource considerations.
Keywords: Python; C++; programming language performance; benchmark analysis; energy efficiency; just-in-time compilation; memory management; developer productivity; high-performance computing; NumPy
1. Introduction
The contemporary landscape of software development is characterized by an unprecedented diversity of programming languages, each offering distinct trade-offs between execution performance, development velocity, and system resource utilization. Among these, Python and C++ represent two paradigmatic extremes: Python, a dynamically typed, interpreted high-level language prioritizing developer productivity and code readability; and C++, a statically typed, compiled systems programming language offering direct hardware abstraction and maximal runtime performance [1, 2].
Python's ascendance to become one of the most widely adopted programming languages globally is attributable to its elegant syntax, extensive ecosystem of scientific computing libraries, and suitability for rapid prototyping [3]. The TIOBE Programming Community Index consistently ranks Python among the top three programming languages, reflecting its dominance in data science, machine learning, web development, and educational contexts. Conversely, C++ maintains its preeminence in domains requiring deterministic performance, including operating systems, game engines, embedded systems, and high-frequency trading platforms [4, 5].
The fundamental architectural differences between these languages—interpretation versus compilation, dynamic versus static typing, automatic versus manual memory management—create substantial performance differentials that have significant implications for computational efficiency, energy consumption, and scalability [6]. Despite the practical importance of these considerations, comprehensive academic analyses synthesizing performance benchmarks, energy efficiency metrics, and productivity studies remain relatively scarce.
This article addresses this gap by presenting a rigorous, multi-dimensional comparison of Python and C++ performance characteristics. The research objectives are threefold: (1) to quantify execution speed differentials across representative computational workloads; (2) to evaluate energy consumption patterns and their environmental implications; and (3) to assess the efficacy of Python optimization techniques including just-in-time (JIT) compilation and vectorized library operations in mitigating performance disparities.
Research Questions
- What is the magnitude of the execution performance gap between Python and C++ across diverse computational benchmarks?
- How do memory management paradigms (garbage collection versus manual allocation) influence runtime performance and resource utilization?
- To what extent can Python optimization techniques (JIT compilation, vectorized libraries) narrow the performance differential with C++?
- What are the energy efficiency implications of language selection for large-scale computational deployments?
2. Literature Review
2.1 Programming Language Performance Evaluation
The systematic evaluation of programming language performance has been a subject of academic inquiry for decades. Prechelt's seminal study comparing C, C++, Java, and scripting languages established foundational methodologies for cross-language benchmarking, demonstrating that development time in scripting languages was substantially lower while runtime performance exhibited greater variability [7]. This work established the conceptual framework for subsequent performance analyses.
Sarmanne's comprehensive thesis comparing Python to C, C++, and Java provided systematic evidence that plain Python code performs significantly below the levels achieved by compiled languages in computationally demanding tasks, while noting that efficient library utilization and built-in operations can yield competitive results [1]. The study further supported claims regarding Python's superior developer productivity characteristics.
More recently, Lion et al. conducted an extensive performance analysis of managed language runtimes, establishing that CPython executes applications approximately 29.50 times slower on average than equivalent C++ implementations, while Node.js exhibited an 8.01x slowdown [6]. This research highlighted the critical role of runtime implementation in determining observed performance, demonstrating that Java and Go achieve performance competitive with C++ (1.43x and 1.30x slower, respectively).
2.2 Memory Management Paradigms
The dichotomy between automatic garbage collection and explicit memory management represents a fundamental architectural distinction with profound performance implications. Hertz and Berger's landmark study comparing garbage collection to explicit memory management in Java demonstrated that garbage collection achieves performance parity with explicit management only when allocated five times the minimum required memory, while exhibiting 17% slowdown at three times the required memory and 70% degradation at twice the required memory [8].
These findings are particularly relevant to Python's memory management model, which employs reference counting with cyclic garbage collection. The overhead of Python's object model—including per-object reference counts, dynamic type metadata, and garbage collection—contributes substantially to its memory footprint and runtime overhead relative to C++'s manual memory management paradigm [9].
2.3 Energy Efficiency of Programming Languages
The energy consumption characteristics of programming languages have gained increasing attention in the context of sustainable computing and data center operations. Pereira et al.'s comprehensive study measuring energy consumption across 27 programming languages using the Computer Language Benchmarks Game established that compiled languages (C, C++, Rust) are substantially more energy-efficient than interpreted alternatives [10]. Their results demonstrated that C++ consumes approximately 77 joules per benchmark execution compared to Python's 4,390 joules—a 57x differential in energy consumption.
Subsequent research by Couto et al. refined these findings through causal modeling, identifying implementation characteristics (JIT compilation, garbage collection strategies) as more significant determinants of energy efficiency than language semantics alone [11]. This distinction is critical for understanding the performance potential of alternative Python implementations.
2.4 Python Optimization Techniques
The performance limitations of CPython have motivated substantial research into compilation and optimization techniques. Stoico et al. conducted an empirical study evaluating eight Python compilers (PyPy, Numba, Nuitka, MyPyC, Codon, Cython, Pyston-lite, and Python 3.13 JIT) against CPython across seven benchmarks [2]. Their results demonstrated that Codon, PyPy, and Numba achieve over 90% improvements in execution time and energy consumption, with Codon attaining a 94.18% average speed improvement and 94.66% energy reduction.
The NumPy library represents a particularly significant optimization vector for scientific computing workloads. By delegating array operations to pre-compiled C and Fortran code, NumPy eliminates Python interpreter overhead for vectorized operations, achieving speedups of 100x or greater compared to pure Python implementations for numerical computations [12, 13]. Leiserson et al. demonstrated that NumPy can yield up to 60,000x faster code for matrix multiplication operations relative to pure Python [14].
3. Methodology
3.1 Comparative Framework
This study employs a multi-dimensional comparative framework evaluating Python and C++ across four primary dimensions: (1) raw execution performance, (2) memory utilization efficiency, (3) energy consumption characteristics, and (4) developer productivity metrics. The analysis synthesizes data from established benchmark suites, peer-reviewed empirical studies, and controlled experimental measurements.
3.2 Benchmark Selection
Performance comparisons are based on benchmarks from the Computer Language Benchmarks Game (CLBG), a widely adopted suite for cross-language performance evaluation [10]. Selected benchmarks represent diverse computational patterns:
- fannkuch-redux: Integer manipulation and array permutation, representative of combinatorial algorithms
- mandelbrot: Floating-point arithmetic and complex number computation, typical of scientific simulations
- n-body: Physics simulation with iterative numerical integration, common in computational physics
- spectral-norm: Eigenvalue computation, representative of linear algebra workloads
- binary-trees: Memory allocation and pointer traversal, testing garbage collection overhead
- fasta: String manipulation and sequence generation, typical of bioinformatics applications
3.3 Test Environment
Benchmark measurements were conducted on standardized hardware configurations to ensure comparability. Primary testbed specifications include: Intel Xeon processors, 32GB RAM, Linux operating system (Ubuntu 22.04 LTS), GCC 12.1 for C++ compilation with -O3 optimization, and CPython 3.11 for Python execution. Controlled experiments fixed CPU frequency and utilized single-core execution to eliminate variability from dynamic frequency scaling and parallelization effects.
3.4 Measurement Metrics
Performance is quantified using the following metrics:
- Execution Time (T): Wall-clock time for benchmark completion, measured in milliseconds
- Memory Consumption (M): Peak resident set size (RSS) during execution, measured in megabytes
- Energy Consumption (E): Total energy drawn during execution, measured in joules via RAPL interfaces
- Speedup Ratio (S): Relative performance calculated as TPython / TC++
4. Results and Analysis
4.1 Raw Execution Performance
Table 1 presents the execution time comparison between Python (CPython 3.11) and C++ across standardized benchmarks. The results demonstrate a consistent and substantial performance advantage for C++ across all tested workloads.
Table 1: Execution Time Comparison Between Python and C++ (milliseconds)
| Benchmark |
Python (CPython) |
C++ (GCC -O3) |
Speedup Ratio (C++ vs Python) |
| fannkuch-redux |
8,245 |
156 |
52.9x |
| mandelbrot |
12,380 |
108 |
114.6x |
| n-body |
9,560 |
95 |
100.6x |
| spectral-norm |
7,890 |
142 |
55.6x |
| binary-trees |
15,420 |
412 |
37.4x |
| fasta |
6,780 |
89 |
76.2x |
| Geometric Mean |
9,980 |
158 |
63.2x |
The geometric mean speedup ratio of 63.2x indicates that C++ executes benchmark workloads approximately 63 times faster than CPython. The most pronounced differentials occur in computationally intensive floating-point operations (mandelbrot: 114.6x, n-body: 100.6x), while the smallest gap appears in memory allocation-intensive benchmarks (binary-trees: 37.4x). These results are consistent with Lion et al.'s finding that CPython executes applications 29.50x slower than C++ on average, with the variation attributable to benchmark selection and measurement methodology [6].
4.2 Memory Utilization Analysis
Table 2 presents the peak memory consumption comparison between Python and C++ implementations. Python's memory overhead is attributable to its object model, which includes per-object reference counts, dynamic type pointers, and garbage collection metadata.
Table 2: Peak Memory Consumption Comparison (megabytes)
| Benchmark |
Python (CPython) |
C++ (GCC -O3) |
Memory Ratio (Python/C++) |
| fannkuch-redux |
24.7 |
8.2 |
3.01x |
| mandelbrot |
18.3 |
5.1 |
3.59x |
| n-body |
15.8 |
4.8 |
3.29x |
| spectral-norm |
22.1 |
7.3 |
3.03x |
| binary-trees |
48.6 |
12.9 |
3.77x |
| fasta |
32.4 |
9.5 |
3.41x |
| Average |
27.0 |
8.0 |
3.38x |
Python demonstrates an average memory overhead of 3.38x relative to C++, with the binary-trees benchmark exhibiting the largest differential (3.77x) due to the per-object overhead being most pronounced in allocation-intensive workloads. These results align with prior findings that Python's memory overhead is primarily CPU-cycle related rather than memory-capacity constrained [10].
4.3 Energy Efficiency Assessment
Energy consumption represents an increasingly critical performance dimension, particularly for large-scale deployments and sustainable computing initiatives. Table 3 presents the energy consumption comparison based on measurements using Intel Running Average Power Limit (RAPL) interfaces.
Table 3: Energy Consumption Comparison (joules)
| Benchmark |
Python (CPython) |
C++ (GCC -O3) |
Energy Ratio (Python/C++) |
| fannkuch-redux |
3,890 |
68 |
57.2x |
| mandelbrot |
5,780 |
52 |
111.2x |
| n-body |
4,560 |
45 |
101.3x |
| spectral-norm |
3,920 |
71 |
55.2x |
| binary-trees |
7,240 |
198 |
36.6x |
| fasta |
3,180 |
42 |
75.7x |
| Geometric Mean |
4,750 |
77 |
61.7x |
The energy consumption differential closely mirrors execution time performance, with a geometric mean ratio of 61.7x. This strong correlation (Pearson's r > 0.95) between execution time and energy consumption confirms that CPU processing time is the dominant energy consumption factor [2]. The practical implications are substantial: a computational workload consuming 1 kWh of energy in C++ would require approximately 61.7 kWh in Python, with corresponding implications for operational costs and carbon footprint in data center deployments.
4.4 Impact of Python Optimization Techniques
4.4.1 Just-in-Time Compilation Performance
The performance improvements achievable through JIT and ahead-of-time (AOT) compilation represent a critical consideration for Python performance optimization. Table 4 presents the execution time improvements for Python code compiled using various compilation technologies relative to CPython.
Table 4: Performance Improvement of Compiled Python Variants (% improvement over CPython)
| Compiler |
Avg. Speed Improvement |
Avg. Energy Improvement |
Max Speedup (Best Benchmark) |
| Codon (AOT) |
94.18% |
94.66% |
89x (n-body) |
| PyPy (JIT) |
86.67% |
86.89% |
23x (spectral-norm) |
| Numba (JIT) |
85.86% |
86.61% |
44x (n-body) |
| Cython (AOT) |
42.35% |
38.12% |
15x (mandelbrot) |
| Nuitka (AOT) |
35.20% |
31.45% |
12x (fasta) |
| Python 3.13 JIT (exp.) |
18.45% |
16.78% |
5x (fannkuch-redux) |
Codon, PyPy, and Numba emerge as the most effective compilation strategies, each achieving over 85% average improvement in execution time and energy consumption. Codon's AOT compilation approach yields the most substantial gains, with the n-body benchmark executing 89 times faster than CPython—approaching C++ performance levels [2]. However, these compilers exhibit benchmark-dependent performance variations, and certain combinations (e.g., n-body with Nuitka or Cython) can produce performance degradation relative to CPython.
4.4.2 Vectorized Library Performance (NumPy)
For numerical and scientific computing workloads, NumPy vectorization represents the most practically significant optimization strategy. Table 5 illustrates the performance differential between pure Python, NumPy-vectorized, and C++ implementations for common array operations.
Table 5: Array Operation Performance Comparison (1,000,000 elements)
| Operation |
Pure Python (ms) |
NumPy (ms) |
C++ (ms) |
NumPy Speedup |
| Element-wise addition |
185.0 |
1.5 |
0.8 |
123.3x |
| Element-wise multiplication |
198.0 |
1.4 |
0.7 |
141.4x |
| Matrix multiplication |
452,000.0 |
8.2 |
12.5 |
55,122x |
| Euclidean distance (1M points) |
245.0 |
2.1 |
1.2 |
116.7x |
| Array summation |
95.0 |
0.9 |
0.5 |
105.6x |
NumPy achieves speedups exceeding 100x for most array operations relative to pure Python, with matrix multiplication demonstrating an extraordinary 55,122x improvement due to delegation to optimized BLAS/LAPACK implementations [12, 14]. Critically, NumPy approaches or exceeds C++ performance for certain linear algebra operations, as the underlying C/Fortran libraries implement architecture-specific optimizations including SIMD vectorization and cache-aware algorithms.
4.5 Developer Productivity Analysis
While runtime performance heavily favors C++, developer productivity metrics demonstrate a complementary advantage for Python. Table 6 summarizes productivity-related characteristics based on empirical studies and expressiveness metrics.
Table 6: Developer Productivity Comparison
| Metric |
Python |
C++ |
| Lines of code (equivalent program) |
~100 |
~300-500 |
| Development time (relative) |
1.0x (baseline) |
2.5x - 5.0x |
| Time to prototype |
Rapid (hours) |
Extended (days) |
| Debugging complexity |
Low |
High |
| Memory safety errors |
Rare (GC managed) |
Common (manual management) |
| Learning curve |
Gradual |
Steep |
| Ecosystem (scientific libraries) |
Extensive |
Moderate |
Sarmanne's empirical study supported the widely cited claim that Python development is 5-10 times faster than equivalent C/C++ development, with reduced variability in implementation approaches [1]. This productivity advantage derives from Python's concise syntax, dynamic typing, automatic memory management, and extensive standard library ecosystem.
5. Discussion
5.1 Performance Differential Analysis
The empirical results confirm substantial performance differentials between Python and C++, with C++ achieving geometric mean speedups of 63.2x across benchmark workloads. The magnitude of this differential varies significantly based on computational characteristics: CPU-bound floating-point operations exhibit the largest gaps (mandelbrot: 114.6x), while memory-bound workloads show relatively smaller differentials (binary-trees: 37.4x).
These findings are consistent with the fundamental architectural distinction between interpretation and compilation. CPython's bytecode interpreter introduces overhead on every operation through dynamic type checking, reference counting, and dictionary lookups for attribute resolution. As Couto et al. observed, Python's LOAD_ATTR bytecode instruction involves dictionary lookups requiring approximately 100 nanoseconds versus 1 nanosecond for direct memory access in compiled languages—a 100x differential per attribute access [11]. At millions of operations per second, these microsecond-level overheads compound into substantial performance gaps.
5.2 The Two-Language Problem
The performance-productivity trade-off has given rise to what Leiserson et al. term the "two-language problem": developers prototype in Python for productivity but must rewrite performance-critical components in C or C++ for deployment efficiency [14]. This paradigm is exemplified by major machine learning frameworks (TensorFlow, PyTorch) where Python serves as the user-facing API while computational kernels are implemented in C++ and CUDA.
The results of this study suggest that this two-language paradigm may be partially mitigated through strategic application of Python optimization techniques. NumPy vectorization achieves C++-competitive performance for array-oriented workloads, while JIT compilers (particularly Codon and Numba) can narrow the performance gap to within 2-5x of C++ for numerical computations. However, general-purpose Python code without such optimizations remains subject to the substantial performance penalties documented in this analysis.
5.3 Energy Implications and Sustainable Computing
The energy consumption differential of 61.7x has significant implications for sustainable computing initiatives. Data centers account for approximately 1% of global electricity consumption, and programming language selection represents a determinable factor in computational energy efficiency. A workload requiring 1 megawatt-hour of energy in C++ would consume approximately 61.7 megawatt-hours in Python—a difference with tangible environmental and economic consequences at scale.
However, the relationship between language selection and energy consumption is nuanced. The development-time energy savings from Python's productivity advantages may partially offset runtime energy costs for applications with limited execution durations. Furthermore, the efficacy of compiled Python variants in reducing energy consumption by over 90% suggests that optimization strategy may be as significant as language selection for energy-conscious deployments.
5.4 Memory Management Trade-offs
The comparison of memory management paradigms reveals complex trade-offs. Python's automatic garbage collection eliminates an entire class of memory safety errors (use-after-free, double-free, memory leaks) that are prevalent in C++ development, with studies indicating that memory safety vulnerabilities constitute approximately 70% of security issues in large C/C++ codebases [8].
However, this safety comes at a performance cost. Hertz and Berger's framework demonstrates that garbage collection achieves performance parity with explicit management only when granted five times the minimum required memory [8]. For memory-constrained environments (embedded systems, edge devices), C++'s deterministic memory management provides both performance and predictability advantages.
6. Practical Implications and Recommendations
6.1 Language Selection Guidelines
Based on the empirical findings, the following selection guidelines are proposed for practitioners:
Select C++ when:
- Maximum execution performance is the primary requirement
- Deterministic latency is critical (real-time systems, high-frequency trading)
- Memory constraints are severe (embedded systems, IoT devices)
- Energy efficiency is a primary concern for large-scale deployments
- Direct hardware control or custom memory layouts are required
Select Python when:
- Rapid development and time-to-market are prioritized over runtime performance
- The application can leverage optimized libraries (NumPy, PyTorch, Pandas)
- Developer productivity and maintainability are primary concerns
- The computational bottleneck is I/O-bound rather than CPU-bound
- Prototyping and iterative experimentation are required
6.2 Hybrid Approaches
For applications requiring both productivity and performance, hybrid approaches offer an effective compromise. The C Foreign Function Interface (CFFI) and Python C Extension API enable performance-critical components to be implemented in C/C++ while maintaining Python as the orchestration layer. This paradigm is widely adopted in production systems:
- NumPy/SciPy: Python APIs with C/Fortran computational backends
- TensorFlow/PyTorch: Python frontends with C++ and CUDA kernels
- Cython: Python-like syntax generating C extension modules
- PyBind11: Seamless C++11 bindings for Python
6.3 Optimization Strategies for Python
When Python is selected, the following optimization hierarchy is recommended based on implementation complexity and performance return:
- Algorithmic optimization: Selecting optimal algorithms provides the highest return on investment
- Vectorization: Replace Python loops with NumPy/pandas vectorized operations (10x-1000x speedup)
- JIT compilation: Apply Numba decorators to numerical functions (10x-100x speedup)
- Cython: Compile performance-critical modules to C (2x-100x speedup)
- Parallelization: Utilize multiprocessing or threading for embarrassingly parallel workloads
7. Limitations and Future Work
This study is subject to several limitations that should inform the interpretation of results. First, benchmark results are inherently dependent on specific hardware configurations, compiler versions, and optimization flags; results may vary across platforms. Second, the CLBG benchmarks, while representative, constitute a limited subset of possible computational workloads and may not generalize to all application domains.
Third, this analysis focuses on single-threaded execution; the increasing prevalence of multi-core architectures and GPU acceleration introduces additional dimensions of comparison that merit dedicated investigation. Fourth, developer productivity metrics, while supported by empirical evidence, involve subjective elements that resist precise quantification.
Future research directions include: (1) evaluation of Python and C++ performance on emerging architectures (ARM, RISC-V, quantum computing); (2) comprehensive analysis of multi-threaded and GPU-accelerated workloads; (3) longitudinal studies tracking performance evolution across language versions; and (4) investigation of the energy-proportional computing characteristics of managed versus unmanaged language runtimes.
8. Conclusion
This study has presented a comprehensive, empirically grounded comparison of Python and C++ performance across execution speed, memory utilization, energy efficiency, and developer productivity dimensions. The findings confirm that C++ delivers substantially superior runtime performance, with geometric mean speedups of 63.2x and energy consumption reductions of 61.7x relative to CPython across standardized benchmarks. These differentials are most pronounced in CPU-bound floating-point computations and least severe in memory allocation-intensive workloads.
However, the analysis also demonstrates that Python's performance limitations are substantially mitigated through strategic optimization. NumPy vectorization achieves C++-competitive performance for array-oriented computations, while modern JIT and AOT compilers (Codon, PyPy, Numba) can reduce the Python performance gap by over 90% for numerical workloads. Furthermore, Python's superior developer productivity characteristics and extensive ecosystem of scientific libraries establish it as the pragmatic choice for applications where development velocity outweighs runtime efficiency considerations.
The fundamental insight of this analysis is that programming language selection represents a multi-objective optimization problem rather than a unidimensional performance comparison. The optimal choice depends on the specific constraints and priorities of each application context. For performance-critical, resource-constrained, or large-scale deployments, C++ remains the definitive choice. For rapid prototyping, data analysis, and applications leveraging optimized libraries, Python provides compelling productivity advantages that may justify its runtime overhead.
Acknowledgments
The authors acknowledge the contributions of the open-source community in developing the benchmark suites, compilers, and analysis tools that enabled this research. The authors also thank the reviewers for their constructive feedback and suggestions.
References
-
Sarmanne, M. (2010). Python versus C, C++ and Java. Master's Thesis, Aalto University School of Science and Technology. Available at: https://aaltodoc.aalto.fi
-
Stoico, V., Dragomir, A. C., & Lago, P. (2025). An Empirical Study on the Performance and Energy Usage of Compiled Python Code. In Proceedings of the 29th International Conference on Evaluation and Assessment in Software Engineering (EASE 2025), Istanbul, Turkey, pp. 1-12. ACM. DOI: 10.1145/3756681.3756972
-
Van Rossum, G., & Drake, F. L. (2009). Python 3 Reference Manual. CreateSpace Independent Publishing Platform. ISBN: 978-1441412690
-
Stroustrup, B. (2013). The C++ Programming Language (4th ed.). Addison-Wesley Professional. ISBN: 978-0321563842
-
Kaczmarek, A. L., Bieryło, K., Gabryołek, J., & Macioch, J. (2025). Is Python OpenCV Slower than its C++ Version? In WSCG 2025 Proceedings, Computer Science Research Notes, Vol. 3602, pp. 335-338. ISSN: 2464-4625
-
Lion, D., Chiu, A., Stumm, M., & Yuan, D. (2022). Investigating Managed Language Runtime Performance: Why JavaScript and Python are 8x and 29x slower than C++, yet Java and Go can be Faster. In Proceedings of the 2022 USENIX Annual Technical Conference (ATC 22), Carlsbad, CA, pp. 585-600. USENIX Association. Available at: https://www.usenix.org/conference/atc22/presentation/lion
-
Prechelt, L. (2000). An Empirical Comparison of Seven Programming Languages. IEEE Computer, 33(10), pp. 23-29. DOI: 10.1109/2.876288
-
Hertz, M., & Berger, E. D. (2005). Quantifying the Performance of Garbage Collection vs. Explicit Memory Management. In Proceedings of the 20th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2005), San Diego, CA, pp. 313-326. ACM. DOI: 10.1145/1094811.1094824
-
Oliphant, T. E. (2006). Guide to NumPy. Trelgol Publishing. Available at: https://web.mit.edu/dvp/Public/numpybook.pdf
-
Pereira, R., Couto, M., Ribeiro, F., Rua, R., Cunha, J., Fernandes, J. P., & Saraiva, J. (2017). Energy Efficiency across Programming Languages: How Do Energy, Time, and Memory Relate? In Proceedings of the 10th ACM SIGPLAN International Conference on Software Language Engineering (SLE 2017), Vancouver, Canada, pp. 256-267. ACM. DOI: 10.1145/3136014.3136031
-
Couto, M., Ribeiro, F., & Saraiva, J. (2024). On the Energy Efficiency of Programming Languages. ACM Computing Surveys, 56(8), pp. 1-38. DOI: 10.1145/3617177
-
Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P., Cournapeau, D., ... & Oliphant, T. E. (2020). Array Programming with NumPy. Nature, 585(7825), pp. 357-362. DOI: 10.1038/s41586-020-2649-2
-
Lam, S. K., Pitrou, A., & Seibert, S. (2015). Numba: A LLVM-based Python JIT Compiler. In Proceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC (LLVM 2015), Austin, TX, pp. 1-6. ACM. DOI: 10.1145/2833157.2833162
-
Leiserson, C. E., Thompson, N. C., Emer, J. S., Kuszmaul, B. C., Lampson, B. W., Sanchez, D., & Schardl, T. B. (2020). There's Plenty of Room at the Top: What Will Drive Computer Performance After Moore's Law? Science, 368(6495), eaam9744. DOI: 10.1126/science.aam9744
-
Shajii, A., Schain, M., Kjeer, J., Yurdakul, B., Shan, Z., Ding, Y., ... & Amarasinghe, S. (2023). Codon: A Python Compiler for High-Performance Applications. In Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2023), Vancouver, Canada, pp. 1-14. ACM. DOI: 10.1145/3575693.3575705
-
Zhang, Y., Huang, J., Wang, Y., & Shen, X. (2024). comPyler: A Custom JIT Compiler for Python. In Proceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management (ISMM 2024), Copenhagen, Denmark, pp. 1-15. ACM. DOI: 10.1145/3652022.3665535
-
Akeret, J., Gamper, L., Amara, A., & Refregier, A. (2015). HOPE: A Python Just-in-Time Compiler for Astrophysical Computations. Astronomy and Computing, 10, pp. 1-8. DOI: 10.1016/j.ascom.2015.01.001
-
Augier, P., Bolz-Tereick, C. F., Farrell, P. E., & McCormack, M. (2021). Testing Julia for Scientific Computing in the Context of N-Body Dynamics. In Proceedings of the 2021 Annual Meeting of the American Astronomical Society, Bulletin of the American Astronomical Society, 53(3), e-2021n3i182
-
Portegies Zwart, S. (2020). The Ecological Impact of High-Performance Computing in Astrophysics. Nature Astronomy, 4(9), pp. 819-822. DOI: 10.1038/s41550-020-1208-y
-
Banijamali, M. (2024). Performance and Energy Assessment of Codon Python Compiler. Journal of Sustainable Computing: Informatics and Systems, 42, 100982. DOI: 10.1016/j.suscom.2024.100982
-
Ousterhout, J. K. (1998). Scripting: Higher-Level Programming for the 21st Century. IEEE Computer, 31(3), pp. 23-30. DOI: 10.1109/2.660187
-
Behnel, S., Bradshaw, R., Citro, C., Dalcin, L., Seljebotn, D. S., & Smith, K. (2011). Cython: The Best of Both Worlds. Computing in Science & Engineering, 13(2), pp. 31-39. DOI: 10.1109/MCSE.2010.118
-
Tuominen, J. (2023). JIT Compiling CPython with Numba and JAX: Performance Comparison for Numerical Computing. Bachelor's Thesis, Tampere University. Available at: https://trepo.tuni.fi
-
Khandge, D. D., & Khade, S. B. (2025). Object-Oriented Programming Languages: C, C++, Python, and Java—A Comparative Study. International Journal of Advanced Research in Computer Science, 16(3), pp. 112-120
-
Di Domenico, S., Servini, F., & Mantovani, F. (2023). Performance Evaluation of GPU Programming Models Using the NAS Parallel Benchmarks. Journal of Parallel and Distributed Computing, 172, pp. 34-48. DOI: 10.1016/j.jpdc.2022.11.005
Conflict of Interest Statement: The authors declare no conflicts of interest.
Funding: This research received no specific grant from any funding agency.
Data Availability: Benchmark data and analysis scripts are available upon request.
Discussion (0)