[Speed] CPython 3.7 is now faster than CPython 2.7 on most benchmarks

Victor Stinner victor.stinner at gmail.com
Tue Feb 7 10:59:41 EST 2017


Hi,

FYI CPython 3.7 is now faster than CPython 2.7 on most benchmarks. It
would be interesting to investigate why 12 benchmarks are still slower
to check if we missed something obvious.

Comparison, ignoring differences smaller than 10%:

haypo at speed-python$ python3 -m perf compare_to
2017-01-03_11-17-2.7-5988caffbff9.json
2017-02-06_07-15-default-e06af4027546.json -G --min-speed=10
Slower (12):
- python_startup_no_site: 3.11 ms +- 0.02 ms -> 8.33 ms +- 0.04 ms:
2.68x slower (+168%)
- python_startup: 6.42 ms +- 0.04 ms -> 14.1 ms +- 0.1 ms: 2.20x slower (+120%)
- unpickle_pure_python: 384 us +- 8 us -> 670 us +- 11 us: 1.74x slower (+74%)
- spectral_norm: 194 ms +- 1 ms -> 259 ms +- 4 ms: 1.33x slower (+33%)
- sqlite_synth: 6.70 us +- 0.11 us -> 8.49 us +- 0.16 us: 1.27x slower (+27%)
- crypto_pyaes: 158 ms +- 1 ms -> 199 ms +- 2 ms: 1.26x slower (+26%)
- xml_etree_parse: 193 ms +- 4 ms -> 242 ms +- 5 ms: 1.25x slower (+25%)
- logging_format: 28.9 us +- 0.2 us -> 33.9 us +- 0.5 us: 1.17x slower (+17%)
- xml_etree_iterparse: 154 ms +- 2 ms -> 179 ms +- 4 ms: 1.16x slower (+16%)
- pickle_pure_python: 847 us +- 14 us -> 974 us +- 14 us: 1.15x slower (+15%)
- logging_simple: 24.4 us +- 0.3 us -> 27.9 us +- 0.4 us: 1.14x slower (+14%)
- go: 439 ms +- 3 ms -> 493 ms +- 7 ms: 1.12x slower (+12%)

Faster (23):
- telco: 634 ms +- 5 ms -> 14.7 ms +- 0.3 ms: 43.23x faster (-98%)
- unpickle_list: 15.7 us +- 0.6 us -> 6.36 us +- 0.11 us: 2.47x faster (-59%)
- pickle_list: 13.7 us +- 0.2 us -> 7.53 us +- 0.41 us: 1.81x faster (-45%)
- pickle: 38.8 us +- 1.5 us -> 22.1 us +- 0.3 us: 1.76x faster (-43%)
- mako: 56.0 ms +- 0.9 ms -> 32.0 ms +- 0.3 ms: 1.75x faster (-43%)
- sympy_sum: 335 ms +- 11 ms -> 192 ms +- 6 ms: 1.74x faster (-43%)
- sympy_expand: 1.65 sec +- 0.02 sec -> 949 ms +- 12 ms: 1.74x faster (-43%)
- sympy_str: 678 ms +- 5 ms -> 425 ms +- 5 ms: 1.59x faster (-37%)
- json_loads: 89.8 us +- 1.0 us -> 56.6 us +- 0.8 us: 1.59x faster (-37%)
- scimark_lu: 483 ms +- 10 ms -> 352 ms +- 11 ms: 1.37x faster (-27%)
- xml_etree_generate: 282 ms +- 3 ms -> 208 ms +- 2 ms: 1.36x faster (-26%)
- call_method_slots: 15.3 ms +- 0.4 ms -> 11.2 ms +- 0.3 ms: 1.36x faster (-26%)
- html5lib: 269 ms +- 7 ms -> 201 ms +- 5 ms: 1.34x faster (-25%)
- call_method_unknown: 17.5 ms +- 0.3 ms -> 13.1 ms +- 0.1 ms: 1.34x
faster (-25%)
- call_method: 15.1 ms +- 0.3 ms -> 11.7 ms +- 0.2 ms: 1.29x faster (-23%)
- sympy_integrate: 51.7 ms +- 0.6 ms -> 40.8 ms +- 0.3 ms: 1.27x faster (-21%)
- unpack_sequence: 140 ns +- 3 ns -> 111 ns +- 1 ns: 1.26x faster (-21%)
- regex_v8: 53.7 ms +- 0.9 ms -> 43.7 ms +- 0.6 ms: 1.23x faster (-19%)
- 2to3: 763 ms +- 4 ms -> 622 ms +- 4 ms: 1.23x faster (-19%)
- pickle_dict: 69.4 us +- 1.1 us -> 56.6 us +- 4.3 us: 1.23x faster (-18%)
- call_simple: 12.7 ms +- 0.3 ms -> 10.3 ms +- 0.4 ms: 1.23x faster (-18%)
- richards: 162 ms +- 2 ms -> 145 ms +- 5 ms: 1.12x faster (-11%)
- float: 266 ms +- 2 ms -> 238 ms +- 3 ms: 1.12x faster (-10%)

Benchmark hidden because not significant (29): (...)
Ignored benchmarks (3) of 2017-01-03_11-17-2.7-5988caffbff9.json:
hg_startup, pyflate, spambayes

Victor


More information about the Speed mailing list