Python Interpreters Benchmarks
x64 ArchLinux : AMD® Ryzen 7 4700U®

vs

 1 : Are the PyPy programs faster? At a glance.

Each chart bar shows, for one unidentified benchmark, how much the fastest PyPy program used compared to the fastest Nuitka program.

(Memory use is only compared for tasks that require memory to be allocated.)


These are not the only compilers and interpreters. These are not the only programs that could be written. These are not the only tasks that could be solved. These are just 10 tiny examples.

 2 : Are the PyPy programs faster? Approximately.

Each table row shows, for one named benchmark, how much the fastest PyPy program used compared to the fastest Nuitka program.

(Memory use is only compared for tasks that require memory to be allocated.)

 PyPy used what fraction? used how many times more? 
Benchmark Time Memory Code
 thread-ring1/403 ±
 n-body1/9 ±
 fib50 †1/7 ±
 richards †1/3 ±
 jsonbench †1/2 ±
 meteor-contest †1/2 ±
 fibonacci †1/2 ±
 pystone1/2?±
 fasta †1/2 1/2
 chameneos-redux1/2 ±
 fannkuch-redux± ±
 spectral-norm±?
 fasta-redux±?±
 k-nucleotide †?±
 reverse-complement †?±
 regex-dna?±
 binary-trees61×±
 templates † ±
 iobench ±
 pidigits †95×?±
 PyPy used what fraction? used how many times more? 
Time-used  |-  |---  25% median  75%  ---|  -|
(Elapsed secs)1/4031/4031/2±95×

† possible mismatch - one-core program compared to multi-core program.

± read the measurements and then read the program source code.

 3 : Are the PyPy programs faster? Measurements.

These are not the only tasks that could be solved. These are just 10 tiny examples. These are not the only compilers and interpreters. These are not the only programs that could be written.

For each named benchmark, measurements of the fastest PyPy program are shown for comparison against measurements of the fastest Nuitka program.

Program Source Code CPU secs Elapsed secs Memory KB Code B ≈ CPU Load
 thread-ring 
PyPy0.110.13?407  0% 7% 0% 8% 0% 0% 0% 86%
Nuitka56.4451.2415,420448  11% 16% 10% 12% 11% 8% 7% 7%
 n-body 
PyPy3.283.3069,6601337  5% 2% 9% 2% 5% 2% 1% 100%
Nuitka29.3829.3810,8801315  6% 4% 4% 3% 3% 3% 2% 100%
 fib50 
PyPy0.490.5073,272130  4% 4% 2% 2% 0% 6% 96% 4% †
Nuitka3.393.3910,716136  5% 4% 3% 4% 2% 100% 3% 2% †
 richards 
PyPy0.190.21?2423  90% 5% 0% 0% 5% 0% 5% 9% †
Nuitka0.580.5810,8962434  13% 5% 3% 9% 100% 5% 8% 2% †
 jsonbench 
PyPy0.940.9675,732322  6% 2% 99% 8% 2% 2% 6% 4% †
Nuitka2.362.3714,644322  3% 1% 3% 1% 100% 2% 4% 2% †
 meteor-contest 
PyPy0.730.7576,0601579  7% 7% 4% 3% 3% 99% 7% 1% †
Nuitka1.641.6411,7721443  3% 4% 1% 1% 2% 40% 62% 5% †
 fibonacci 
PyPy0.220.241,032181  8% 0% 0% 0% 92% 4% 4% 0% †
Nuitka0.510.5111,500182  6% 0% 2% 6% 37% 69% 2% 2% †
 pystone 
PyPy0.090.09?2301  0% 100% 0% 0% 0% 0% 0% 0%
Nuitka0.150.15?2300  12% 0% 0% 0% 0% 0% 100% 7%
 fasta 
PyPy1.801.8374,152900  85% 5% 1% 3% 14% 4% 4% 2% †
Nuitka6.412.9314,6442016  31% 22% 39% 16% 48% 13% 27% 62% †
 chameneos-redux 
PyPy199.24142.7670,2801192  11% 11% 11% 9% 10% 11% 10% 12%
Nuitka295.39215.2811,5241191  16% 9% 8% 8% 12% 12% 13% 13%
 fannkuch-redux 
PyPy1.530.6080,2281009  59% 56% 15% 5% 58% 25% 8% 59%
Nuitka5.360.7514,4961069  92% 92% 92% 87% 97% 91% 91% 91%
 spectral-norm 
PyPy0.090.12?594  0% 82% 0% 0% 8% 8% 8% 0%
Nuitka0.110.12?394  100% 0% 0% 8% 8% 0% 0% 0%
 fasta-redux 
PyPy0.210.232,9681115  4% 8% 5% 0% 19% 67% 9% 4%
Nuitka0.200.20?1115  5% 0% 100% 0% 5% 5% 0% 0%
 k-nucleotide 
PyPy0.090.11?593  9% 0% 0% 83% 0% 0% 0% 0% †
Nuitka0.090.06?801  14% 60% 0% 17% 17% 0% 17% 17% †
 reverse-complement 
PyPy0.060.06?432  0% 100% 0% 0% 0% 14% 0% 0% †
Nuitka0.030.03?458  0% 0% 100% 0% 0% 25% 0% 0% †
 regex-dna 
PyPy0.110.12?501  0% 90% 0% 0% 0% 0% 0% 0%
Nuitka0.050.05?524  0% 0% 0% 17% 100% 0% 0% 0%
 binary-trees 
PyPy2.321.0590,520743  37% 34% 33% 26% 31% 37% 44% 51%
Nuitka1.480.301,496741  66% 65% 60% 60% 80% 66% 65% 67%
 templates 
PyPy2.632.6996,864307  6% 97% 3% 2% 3% 3% 4% 6% †
Nuitka0.680.7117,752322  0% 100% 0% 1% 3% 6% 1% 1% †
 iobench 
PyPy12.1812.2477,048370  38% 4% 3% 3% 67% 4% 3% 3%
Nuitka2.712.7110,656367  6% 2% 100% 3% 6% 3% 3% 5%
 pidigits 
PyPy3.013.0378,040322  5% 5% 4% 3% 100% 4% 3% 1% †
Nuitka0.030.03?379  100% 0% 0% 0% 0% 0% 0% 0% †
 mandelbrot 
No program
Nuitka51.936.9462,5003852  96% 98% 95% 95% 96% 95% 97% 97%
 binary-trees-redux
   No programs

† possible mismatch - one-core program compared to multi-core program.

 4 : Are there other PyPy programs for these benchmarks?

Remember - those are just the fastest PyPy and Nuitka programs measured on this OS/machine. Check if there are other implementations of these benchmark programs for PyPy.

Maybe one of those other PyPy programs is fastest on a different OS/machine.

 5 : Are there other faster programs for these benchmarks?

Remember - those are just the fastest PyPy and Nuitka programs measured on this OS/machine. Check if there are faster implementations of these benchmark programs for other programming languages.

Maybe one of those other programs is fastest on a different OS/machine.

 PyPy : the old PyPy 

Revised BSD license

  Home   Conclusions   License   Play