Nice! For the record, I'll be giving a talk in PyCon Ireland about Codespeed. Would you mind me citing those tweets and screenshots, to highlight usage on <a href="http://speed.python.org">speed.python.org</a>?<br><br>You mentioned new more reliable vs old results. How close are we to have an stable setup that gives us benchmarks numbers regularly?<br><br>Cheers,<br>Miquel <br><div class="gmail_quote"><div dir="ltr">El El vie, 4 nov 2016 a las 12:30, Victor Stinner <<a href="mailto:victor.stinner@gmail.com">victor.stinner@gmail.com</a>> escribió:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br class="gmail_msg">
<br class="gmail_msg">
You may know that I'm working on benchmarks. I regenerated all<br class="gmail_msg">
benchmark results of <a href="http://speed.python.org" rel="noreferrer" class="gmail_msg" target="_blank">speed.python.org</a> using performance 0.3.2<br class="gmail_msg">
(benchmark suite). I started to analyze results.<br class="gmail_msg">
<br class="gmail_msg">
All results are available online on the website:<br class="gmail_msg">
<br class="gmail_msg">
   <a href="https://speed.python.org/" rel="noreferrer" class="gmail_msg" target="_blank">https://speed.python.org/</a><br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
To communicate on my work on benchmarks, I tweeted two pictures:<br class="gmail_msg">
<br class="gmail_msg">
"sympy benchmarks: Python 3.6 is between 8% and 48% faster than Python<br class="gmail_msg">
2.7 #python #benchmark":<br class="gmail_msg">
<a href="https://twitter.com/VictorStinner/status/794289596683210760" rel="noreferrer" class="gmail_msg" target="_blank">https://twitter.com/VictorStinner/status/794289596683210760</a><br class="gmail_msg">
<br class="gmail_msg">
"Python 3.6 is between 25% and 54% slower than Python 2.7 in the<br class="gmail_msg">
following benchmarks":<br class="gmail_msg">
<a href="https://twitter.com/VictorStinner/status/794305065708376069" rel="noreferrer" class="gmail_msg" target="_blank">https://twitter.com/VictorStinner/status/794305065708376069</a><br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Many people were disappointed that Python 3.6 can be up to 54% slower<br class="gmail_msg">
than Python 2.7. In fact, I know many reasons which explain that, but<br class="gmail_msg">
it's hard to summarize them in 140 characters ;-)<br class="gmail_msg">
<br class="gmail_msg">
For example, Python 3.6 is 54% slower than Python 2.7 on the benchmark<br class="gmail_msg">
pycrypto_aes. This benchmark tests a pure Python implementation of the<br class="gmail_msg">
crypto cipher AES. You may know that CPython is slow for CPU intensive<br class="gmail_msg">
functions, especially on integer and floatting point numbers.<br class="gmail_msg">
<br class="gmail_msg">
"int" in Python 3 is now "long integers" by default, which is known to<br class="gmail_msg">
be a little bit slower than "short int" of Python 2. On a more<br class="gmail_msg">
realistic benchmark (see other benchmarks), the overhead of Python 3<br class="gmail_msg">
"long int" is negligible.<br class="gmail_msg">
<br class="gmail_msg">
AES is a typical example stressing integers. For me, it's a dummy<br class="gmail_msg">
benchmark: it doesn't make sense to use Python for AES: modern CPUs<br class="gmail_msg">
have an *hardware* implemention which is super fast.<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Well, I didn't have time to analyze in depth individual benchmarks. If<br class="gmail_msg">
you want to help me, here is the source code of benchmarks:<br class="gmail_msg">
<a href="https://github.com/python/performance/blob/master/performance/benchmarks/" rel="noreferrer" class="gmail_msg" target="_blank">https://github.com/python/performance/blob/master/performance/benchmarks/</a><br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Raw results of Python 3.6 compared to Python 2.7:<br class="gmail_msg">
-------------------<br class="gmail_msg">
$ python3 -m perf compare_to 2016-11-03_15-36-2.7-91f024fc9b3a.json.gz<br class="gmail_msg">
2016-11-03_15-38-3.6-c4319c0d0131.json.gz -G --min-speed=5<br class="gmail_msg">
Slower (40):<br class="gmail_msg">
- python_startup: 7.74 ms +- 0.28 ms -> 26.9 ms +- 0.6 ms: 3.47x slower<br class="gmail_msg">
- python_startup_no_site: 4.43 ms +- 0.08 ms -> 10.4 ms +- 0.4 ms: 2.36x slower<br class="gmail_msg">
- unpickle_pure_python: 417 us +- 3 us -> 918 us +- 14 us: 2.20x slower<br class="gmail_msg">
- call_method: 16.3 ms +- 0.2 ms -> 28.6 ms +- 0.8 ms: 1.76x slower<br class="gmail_msg">
- call_method_slots: 16.2 ms +- 0.4 ms -> 28.3 ms +- 0.7 ms: 1.75x slower<br class="gmail_msg">
- call_method_unknown: 18.4 ms +- 0.2 ms -> 30.8 ms +- 0.8 ms: 1.67x slower<br class="gmail_msg">
- crypto_pyaes: 161 ms +- 2 ms -> 249 ms +- 2 ms: 1.54x slower<br class="gmail_msg">
- xml_etree_parse: 201 ms +- 5 ms -> 298 ms +- 8 ms: 1.49x slower<br class="gmail_msg">
- logging_simple: 26.4 us +- 0.3 us -> 38.4 us +- 0.7 us: 1.46x slower<br class="gmail_msg">
- logging_format: 31.3 us +- 0.4 us -> 45.5 us +- 0.8 us: 1.45x slower<br class="gmail_msg">
- pickle_pure_python: 986 us +- 9 us -> 1.41 ms +- 0.03 ms: 1.43x slower<br class="gmail_msg">
- spectral_norm: 208 ms +- 2 ms -> 287 ms +- 2 ms: 1.38x slower<br class="gmail_msg">
- logging_silent: 660 ns +- 7 ns -> 865 ns +- 31 ns: 1.31x slower<br class="gmail_msg">
- chaos: 240 ms +- 2 ms -> 314 ms +- 4 ms: 1.31x slower<br class="gmail_msg">
- go: 490 ms +- 2 ms -> 640 ms +- 26 ms: 1.31x slower<br class="gmail_msg">
- xml_etree_iterparse: 178 ms +- 2 ms -> 230 ms +- 5 ms: 1.29x slower<br class="gmail_msg">
- sqlite_synth: 8.29 us +- 0.16 us -> 10.6 us +- 0.2 us: 1.28x slower<br class="gmail_msg">
- xml_etree_process: 210 ms +- 6 ms -> 268 ms +- 14 ms: 1.28x slower<br class="gmail_msg">
- django_template: 387 ms +- 4 ms -> 484 ms +- 5 ms: 1.25x slower<br class="gmail_msg">
- fannkuch: 830 ms +- 32 ms -> 1.04 sec +- 0.03 sec: 1.25x slower<br class="gmail_msg">
- hexiom: 20.2 ms +- 0.1 ms -> 24.7 ms +- 0.2 ms: 1.22x slower<br class="gmail_msg">
- chameleon: 26.1 ms +- 0.2 ms -> 31.9 ms +- 0.4 ms: 1.22x slower<br class="gmail_msg">
- regex_compile: 395 ms +- 2 ms -> 482 ms +- 6 ms: 1.22x slower<br class="gmail_msg">
- json_dumps: 25.8 ms +- 0.2 ms -> 31.0 ms +- 0.5 ms: 1.20x slower<br class="gmail_msg">
- nqueens: 229 ms +- 2 ms -> 274 ms +- 2 ms: 1.20x slower<br class="gmail_msg">
- genshi_text: 81.9 ms +- 0.6 ms -> 97.8 ms +- 1.1 ms: 1.19x slower<br class="gmail_msg">
- raytrace: 1.17 sec +- 0.03 sec -> 1.39 sec +- 0.03 sec: 1.19x slower<br class="gmail_msg">
- scimark_monte_carlo: 240 ms +- 7 ms -> 282 ms +- 10 ms: 1.17x slower<br class="gmail_msg">
- scimark_sor: 441 ms +- 8 ms -> 517 ms +- 12 ms: 1.17x slower<br class="gmail_msg">
- deltablue: 17.4 ms +- 0.1 ms -> 20.1 ms +- 0.6 ms: 1.16x slower<br class="gmail_msg">
- sqlalchemy_declarative: 310 ms +- 3 ms -> 354 ms +- 6 ms: 1.14x slower<br class="gmail_msg">
- call_simple: 12.2 ms +- 0.2 ms -> 13.9 ms +- 0.2 ms: 1.14x slower<br class="gmail_msg">
- scimark_fft: 613 ms +- 19 ms -> 694 ms +- 23 ms: 1.13x slower<br class="gmail_msg">
- meteor_contest: 191 ms +- 1 ms -> 215 ms +- 2 ms: 1.13x slower<br class="gmail_msg">
- pathlib: 46.9 ms +- 0.4 ms -> 52.6 ms +- 0.9 ms: 1.12x slower<br class="gmail_msg">
- richards: 181 ms +- 1 ms -> 201 ms +- 6 ms: 1.11x slower<br class="gmail_msg">
- genshi_xml: 191 ms +- 2 ms -> 209 ms +- 2 ms: 1.10x slower<br class="gmail_msg">
- float: 290 ms +- 5 ms -> 310 ms +- 7 ms: 1.07x slower<br class="gmail_msg">
- scimark_sparse_mat_mult: 8.19 ms +- 0.22 ms -> 8.74 ms +- 0.15 ms:<br class="gmail_msg">
1.07x slower<br class="gmail_msg">
- xml_etree_generate: 302 ms +- 3 ms -> 320 ms +- 8 ms: 1.06x slower<br class="gmail_msg">
<br class="gmail_msg">
Faster (15):<br class="gmail_msg">
- telco: 707 ms +- 22 ms -> 22.1 ms +- 0.4 ms: 32.04x faster<br class="gmail_msg">
- unpickle_list: 15.0 us +- 0.3 us -> 7.86 us +- 0.16 us: 1.90x faster<br class="gmail_msg">
- pickle_list: 14.7 us +- 0.2 us -> 9.12 us +- 0.38 us: 1.61x faster<br class="gmail_msg">
- json_loads: 98.7 us +- 2.3 us -> 62.3 us +- 0.7 us: 1.58x faster<br class="gmail_msg">
- pickle: 40.4 us +- 0.6 us -> 27.1 us +- 0.5 us: 1.49x faster<br class="gmail_msg">
- sympy_sum: 361 ms +- 10 ms -> 244 ms +- 7 ms: 1.48x faster<br class="gmail_msg">
- sympy_expand: 1.68 sec +- 0.02 sec -> 1.15 sec +- 0.03 sec: 1.47x faster<br class="gmail_msg">
- regex_v8: 62.0 ms +- 0.5 ms -> 47.2 ms +- 0.6 ms: 1.31x faster<br class="gmail_msg">
- sympy_str: 699 ms +- 22 ms -> 537 ms +- 15 ms: 1.30x faster<br class="gmail_msg">
- regex_effbot: 6.67 ms +- 0.04 ms -> 5.23 ms +- 0.05 ms: 1.28x faster<br class="gmail_msg">
- mako: 61.5 ms +- 0.7 ms -> 49.7 ms +- 2.5 ms: 1.24x faster<br class="gmail_msg">
- html5lib: 298 ms +- 7 ms -> 261 ms +- 6 ms: 1.14x faster<br class="gmail_msg">
- sympy_integrate: 55.9 ms +- 0.3 ms -> 51.8 ms +- 1.0 ms: 1.08x faster<br class="gmail_msg">
- pickle_dict: 69.4 us +- 0.9 us -> 65.2 us +- 3.2 us: 1.06x faster<br class="gmail_msg">
- scimark_lu: 551 ms +- 26 ms -> 523 ms +- 18 ms: 1.05x faster<br class="gmail_msg">
<br class="gmail_msg">
Benchmark hidden because not significant (8): 2to3, dulwich_log,<br class="gmail_msg">
nbody, pidigits, regex_dna, tornado_http, unpack_sequence, unpickle<br class="gmail_msg">
Ignored benchmarks (3) of 2016-11-03_15-36-2.7-91f024fc9b3a.json:<br class="gmail_msg">
hg_startup, pyflate, spambayes<br class="gmail_msg">
-------------------<br class="gmail_msg">
<br class="gmail_msg">
Please ignore call_method, call_method_slots, call_method_unknown<br class="gmail_msg">
benchmarks: it seems like I had an issue on the benchmark server. I<br class="gmail_msg">
was unable to reproduce he 70% slowdown on my laptop.<br class="gmail_msg">
<br class="gmail_msg">
I attached the two compressed JSON files to this email if you want to<br class="gmail_msg">
analyze them yourself.<br class="gmail_msg">
<br class="gmail_msg">
I hope that my work on benchmarks will motive some developers to look<br class="gmail_msg">
closer at Python 3 performance to find interesting optimizations ;-)<br class="gmail_msg">
<br class="gmail_msg">
Victor<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
Speed mailing list<br class="gmail_msg">
<a href="mailto:Speed@python.org" class="gmail_msg" target="_blank">Speed@python.org</a><br class="gmail_msg">
<a href="https://mail.python.org/mailman/listinfo/speed" rel="noreferrer" class="gmail_msg" target="_blank">https://mail.python.org/mailman/listinfo/speed</a><br class="gmail_msg">
</blockquote></div>