I reran my Project Euler benchmark with PyPy 1.8, PyPy 1.7, Psyco 1.6, and CPython 2.7.2. (On Gentoo Linux x86.)
Total runtime for 127 small programs was 184.18s for PyPy 1.8, 185.55s for PyPy 1.7, 343.51s for Psyco, and 533.09s for CPython.
Or in relative terms, PyPy 1.8 was less than 1% faster than 1.7. Both versions of PyPy were almost twice as fast as Psyco, and almost three times as fast as CPython.
Full results follow:
script | PyPy 1.7 | PyPy 1.8 | Psyco 1.6 | CPython 2.7.2 |
---|---|---|---|---|
euler1.py | 0.34 | 0.31 | 0.23 | 0.10 |
euler2.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler3.py | 0.21 | 0.21 | 0.41 | 0.41 |
euler4.py | 0.20 | 0.21 | 0.21 | 0.20 |
euler5.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler6.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler7.py | 0.10 | 0.21 | 0.10 | 0.31 |
euler8.py | 0.10 | 0.10 | 0.11 | 0.11 |
euler9.py | 0.10 | 0.10 | 0.10 | 0.20 |
euler10.py | 1.43 | 1.21 | 1.72 | 7.09 |
euler11.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler13.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler14.py | 3.44 | 3.64 | 1.42 | 3.03 |
euler15.py | 0.10 | 0.10 | 0.10 | 0.11 |
euler16.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler18.py | 0.20 | 0.20 | 0.10 | 0.10 |
euler19.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler20.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler21.py | 0.10 | 0.10 | 0.10 | 0.20 |
euler22.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler23.py | 2.93 | 3.03 | 4.85 | 12.33 |
euler24.py | 2.12 | 2.73 | 7.48 | 5.36 |
euler25.py | 0.51 | 0.51 | 0.91 | 0.20 |
euler26.py | 6.27 | 7.07 | 9.50 | 4.25 |
euler27.py | 0.91 | 0.91 | 1.21 | 8.99 |
euler28.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler29.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler30.py | 0.61 | 0.51 | 4.75 | 3.23 |
euler32.py | 2.12 | 1.62 | 4.85 | 4.04 |
euler33.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler34.py | 2.43 | 2.53 | 11.12 | 14.15 |
euler35.py | 3.84 | 4.04 | 6.37 | 26.71 |
euler36.py | 1.93 | 2.14 | 2.95 | 2.63 |
euler37.py | 4.39 | 4.08 | 14.90 | 15.31 |
euler38.py | 0.72 | 0.61 | 1.33 | 1.63 |
euler39.py | 0.31 | 0.31 | 0.21 | 0.41 |
euler40.py | 0.61 | 0.41 | 0.41 | 0.61 |
euler41.py | 2.55 | 3.77 | 5.00 | 4.48 |
euler42.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler43.py | 10.00 | 10.82 | 38.13 | 36.13 |
euler44.py | 0.61 | 0.51 | 0.82 | 3.37 |
euler45.py | 4.80 | 3.98 | 2.86 | 2.35 |
euler46.py | 0.21 | 0.31 | 0.31 | 1.12 |
euler47.py | 0.61 | 0.61 | 0.61 | 3.45 |
euler48.py | 0.21 | 0.20 | 0.10 | 0.10 |
euler49.py | 0.31 | 0.31 | 0.41 | 0.71 |
euler51.py | 6.78 | 7.08 | 42.35 | 33.36 |
euler52.py | 0.41 | 0.31 | 0.91 | 1.01 |
euler53.py | 0.20 | 0.31 | 0.20 | 0.31 |
euler54.py | 0.31 | 0.41 | 0.31 | 0.20 |
euler55.py | 0.81 | 0.71 | 0.41 | 0.41 |
euler56.py | 0.41 | 0.41 | 0.91 | 0.81 |
euler57.py | 0.41 | 0.41 | 0.41 | 0.81 |
euler59.py | 6.06 | 2.93 | 16.37 | 15.66 |
euler61.py | 0.30 | 0.20 | 0.10 | 0.22 |
euler62.py | 0.20 | 0.31 | 0.20 | 0.30 |
euler63.py | 0.20 | 0.31 | 0.20 | 0.10 |
euler65.py | 0.10 | 0.10 | 0.11 | 0.10 |
euler66.py | 1.42 | 1.31 | 8.80 | 15.67 |
euler67.py | 0.20 | 0.10 | 0.10 | 0.11 |
euler68.py | 0.10 | 0.10 | 0.10 | 0.11 |
euler69.py | 0.20 | 0.10 | 0.10 | 0.20 |
euler70.py | 0.51 | 0.41 | 0.91 | 0.71 |
euler71.py | 0.30 | 0.20 | 0.30 | 1.11 |
euler72.py | 6.07 | 6.27 | 7.98 | 58.81 |
euler73.py | 2.63 | 2.33 | 2.73 | 29.21 |
euler75.py | 6.23 | 9.58 | 0.51 | 2.23 |
euler77.py | 0.51 | 0.41 | 0.31 | 0.41 |
euler79.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler80.py | 0.71 | 0.71 | 0.71 | 0.51 |
euler81.py | 0.41 | 0.10 | 0.10 | 0.10 |
euler82.py | 0.41 | 0.20 | 0.31 | 0.31 |
euler83.py | 0.20 | 0.20 | 0.41 | 0.61 |
euler84.py | 1.42 | 1.42 | 4.85 | 20.72 |
euler85.py | 6.27 | 1.72 | 10.21 | 12.63 |
euler87.py | 1.11 | 0.61 | 0.51 | 0.91 |
euler89.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler93.py | 2.86 | 2.86 | 6.12 | 12.96 |
euler94.py | 30.64 | 31.95 | 28.95 | 23.43 |
euler97.py | 3.13 | 3.34 | 3.13 | 3.94 |
euler98.py | 0.30 | 0.31 | 0.51 | 0.61 |
euler99.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler100.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler101.py | 0.41 | 0.30 | 0.10 | 0.10 |
euler102.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler103.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler104.py | 1.01 | 0.81 | 2.12 | 2.02 |
euler105.py | 1.42 | 1.32 | 0.41 | 0.41 |
euler106.py | 1.32 | 1.62 | 0.51 | 0.41 |
euler107.py | 0.20 | 0.51 | 0.20 | 0.41 |
euler108.py | 3.13 | 3.34 | 7.99 | 11.02 |
euler109.py | 0.41 | 0.30 | 0.41 | 2.02 |
euler111.py | 3.13 | 3.34 | 4.95 | 20.11 |
euler112.py | 2.43 | 2.93 | 13.34 | 15.46 |
euler114.py | 0.20 | 0.11 | 0.10 | 0.10 |
euler115.py | 0.20 | 0.10 | 0.20 | 0.41 |
euler116.py | 0.10 | 0.11 | 0.10 | 0.10 |
euler117.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler119.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler120.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler121.py | 0.10 | 0.10 | 0.10 | 0.21 |
euler123.py | 4.96 | 5.56 | 8.40 | 7.80 |
euler124.py | 0.71 | 0.71 | 0.61 | 2.63 |
euler125.py | 1.32 | 1.52 | 1.42 | 1.32 |
euler126.py | 1.73 | 1.52 | 3.94 | 18.40 |
euler135.py | 3.34 | 2.93 | 2.53 | 3.94 |
euler142.py | 0.22 | 0.21 | 0.21 | 0.34 |
euler143.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler150.py | 0.62 | 0.51 | 0.93 | 0.82 |
euler162.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler171.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler172.py | 0.51 | 0.41 | 0.51 | 0.51 |
euler173.py | 0.61 | 0.71 | 0.61 | 0.91 |
euler174.py | 3.34 | 3.13 | 3.23 | 3.23 |
euler181.py | 0.10 | 0.10 | 0.11 | 0.11 |
euler188.py | 0.72 | 0.21 | 0.10 | 0.21 |
euler190.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler202.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler205.py | 0.61 | 0.51 | 1.32 | 0.71 |
euler207.py | 0.41 | 0.51 | 0.20 | 0.91 |
euler222.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler230.py | 0.10 | 0.10 | 0.10 | 0.11 |
euler233.py | 0.10 | 0.10 | 0.10 | 0.10 |
euler234.py | 3.44 | 4.04 | 8.40 | 9.40 |
euler235.py | 0.20 | 0.10 | 0.31 | 0.30 |
euler240.py | 7.90 | 7.98 | 13.14 | 23.24 |
euler267.py | 0.61 | 0.51 | 0.20 | 0.51 |
total | 185.55 | 184.18 | 343.51 | 533.09 |
wins | 73 | 75 | 66 | 49 |
Post a Comment
You must be logged in to post a comment.