[Python-de] Fwd: [Speed] CPython 3.7 is now faster than CPython 2.7 on most benchmarks

Stefan Behnel python-de at behnel.de
Mi Feb 22 08:59:17 EST 2017


Hallo zusammen!

Für die, die es nicht mitverfolgt haben, hier zur Info. Victor Stinner hat
in den letzten Monaten viel Zeit investiert, um die Python Benchmark Suite
auf den neuesten Stand zu bringen, Performance-Messungen zu stabilisieren
und Ansatzpunkte zu identifizieren, um Python 3.6 und 3.7 schneller zu
machen. Dabei wurden viele Performance-Probleme in der Python 3.x-Reihe
gefunden und von den Python-Devs verbessert.

Unten das Ergebnis im Vergleich zu Python 2.7:
- 23 Benchmarks sind schneller in Python 3.7
- 29 Benchmarks sind gleich schnell
- 12 Benchmarks sind langsamer, darunter die Startzeit und einige
künstlich-reine Python-Benchmarks, für die es native Tools gibt

Klingt für mich nach einer attraktiven Plattform.

Stefan



-------- Weitergeleitete Nachricht --------
Betreff: [Speed] CPython 3.7 is now faster than CPython 2.7 on most benchmarks
Datum: Tue, 7 Feb 2017 16:59:41 +0100
Von: Victor Stinner

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



Mehr Informationen über die Mailingliste python-de