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.