Skip to content

Instantly share code, notes, and snippets.

@mweinelt
Created January 30, 2024 19:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mweinelt/6a9ec50a06d96630f50be58c388f895c to your computer and use it in GitHub Desktop.
Save mweinelt/6a9ec50a06d96630f50be58c388f895c to your computer and use it in GitHub Desktop.
Python 3.12 PGO Performance Gain (Intel i7-8700K 6C/12T, 64GB DDR4-2400)
python312-no-pgo.json
=====================
Performance version: 1.10.0
Report on Linux-6.6.14-x86_64-with-glibc2.38
Number of logical CPUs: 12
Start date: 2024-01-30 18:57:43.076973
End date: 2024-01-30 20:01:50.659574
python312-pgo.json
==================
Performance version: 1.10.0
Report on Linux-6.6.14-x86_64-with-glibc2.38
Number of logical CPUs: 12
Start date: 2024-01-30 17:50:14.778578
End date: 2024-01-30 18:51:05.007601
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| Benchmark | python312-no-pgo.json | python312-pgo.json | Change | Significance |
+==================================+=======================+====================+==============+========================+
| 2to3 | 405 ms | 352 ms | 1.15x faster | Significant (t=44.30) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_generators | 540 ms | 474 ms | 1.14x faster | Significant (t=23.18) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_tree_cpu_io_mixed | 873 ms | 807 ms | 1.08x faster | Significant (t=10.89) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_tree_cpu_io_mixed_tg | 874 ms | 768 ms | 1.14x faster | Significant (t=18.36) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_tree_eager | 147 ms | 130 ms | 1.13x faster | Significant (t=13.37) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_tree_eager_cpu_io_mixed | 529 ms | 476 ms | 1.11x faster | Significant (t=21.94) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_tree_eager_cpu_io_mixed_tg | 470 ms | 412 ms | 1.14x faster | Significant (t=23.73) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_tree_eager_io | 1.32 sec | 1.25 sec | 1.05x faster | Significant (t=8.19) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_tree_eager_io_tg | 1.30 sec | 1.19 sec | 1.09x faster | Significant (t=9.98) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_tree_eager_memoization | 320 ms | 291 ms | 1.10x faster | Significant (t=12.06) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_tree_eager_memoization_tg | 247 ms | 229 ms | 1.08x faster | Significant (t=10.56) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_tree_eager_tg | 102 ms | 87.4 ms | 1.17x faster | Significant (t=23.41) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_tree_io | 1.24 sec | 1.20 sec | 1.04x faster | Significant (t=5.91) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_tree_io_tg | 1.25 sec | 1.19 sec | 1.05x faster | Significant (t=14.67) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_tree_memoization | 662 ms | 626 ms | 1.06x faster | Significant (t=5.96) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_tree_memoization_tg | 628 ms | 614 ms | 1.02x faster | Significant (t=2.80) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_tree_none | 552 ms | 504 ms | 1.10x faster | Significant (t=13.80) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| async_tree_none_tg | 500 ms | 477 ms | 1.05x faster | Significant (t=15.84) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| asyncio_tcp | 464 ms | 452 ms | 1.03x faster | Significant (t=4.28) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| asyncio_tcp_ssl | 1.49 sec | 1.50 sec | 1.01x slower | Not significant |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| asyncio_websockets | 539 ms | 589 ms | 1.09x slower | Significant (t=-37.62) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| bench_mp_pool | 10.6 ms | 5.60 ms | 1.89x faster | Significant (t=15.87) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| bench_thread_pool | 1.26 ms | 1.16 ms | 1.09x faster | Significant (t=16.68) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| chameleon | 8.57 ms | 7.90 ms | 1.08x faster | Significant (t=18.43) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| chaos | 89.9 ms | 75.0 ms | 1.20x faster | Significant (t=41.17) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| comprehensions | 28.4 us | 24.4 us | 1.16x faster | Significant (t=28.56) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| coroutines | 31.1 ms | 28.6 ms | 1.09x faster | Significant (t=20.36) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| coverage | 81.2 ms | 80.3 ms | 1.01x faster | Not significant |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| create_gc_cycles | 1.27 ms | 1.20 ms | 1.06x faster | Significant (t=5.26) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| crypto_pyaes | 102 ms | 85.6 ms | 1.19x faster | Significant (t=29.81) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| dask | 711 ms | 662 ms | 1.07x faster | Significant (t=19.45) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| deepcopy | 465 us | 433 us | 1.07x faster | Significant (t=20.52) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| deepcopy_memo | 46.2 us | 45.8 us | 1.01x faster | Not significant |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| deepcopy_reduce | 4.30 us | 3.98 us | 1.08x faster | Significant (t=12.58) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| deltablue | 4.74 ms | 4.14 ms | 1.15x faster | Significant (t=27.83) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| django_template | 51.7 ms | 45.9 ms | 1.13x faster | Significant (t=30.78) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| docutils | 3.28 sec | 3.06 sec | 1.07x faster | Significant (t=12.98) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| dulwich_log | 97.2 ms | 89.1 ms | 1.09x faster | Significant (t=15.32) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| fannkuch | 503 ms | 440 ms | 1.14x faster | Significant (t=22.99) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| float | 107 ms | 103 ms | 1.04x faster | Not significant |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| gc_traversal | 3.47 ms | 3.66 ms | 1.05x slower | Significant (t=-4.84) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| generators | 46.3 ms | 45.8 ms | 1.01x faster | Not significant |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| genshi_text | 31.9 ms | 30.3 ms | 1.05x faster | Significant (t=7.31) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| genshi_xml | 68.1 ms | 65.9 ms | 1.03x faster | Significant (t=6.94) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| go | 180 ms | 172 ms | 1.05x faster | Significant (t=3.67) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| hexiom | 8.10 ms | 7.42 ms | 1.09x faster | Significant (t=16.71) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| html5lib | 79.0 ms | 77.7 ms | 1.02x faster | Not significant |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| json_dumps | 13.8 ms | 11.8 ms | 1.17x faster | Significant (t=41.41) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| json_loads | 33.0 us | 29.9 us | 1.11x faster | Significant (t=14.99) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| logging_format | 9.76 us | 8.54 us | 1.14x faster | Significant (t=21.52) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| logging_silent | 138 ns | 127 ns | 1.09x faster | Significant (t=8.04) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| logging_simple | 8.78 us | 7.60 us | 1.16x faster | Significant (t=21.46) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| mako | 13.7 ms | 12.3 ms | 1.11x faster | Significant (t=18.84) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| mdp | 3.25 sec | 2.96 sec | 1.10x faster | Significant (t=16.80) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| meteor_contest | 127 ms | 116 ms | 1.10x faster | Significant (t=14.19) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| nbody | 125 ms | 117 ms | 1.07x faster | Significant (t=15.25) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| nqueens | 119 ms | 97.0 ms | 1.23x faster | Significant (t=37.78) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| pathlib | 21.9 ms | 20.6 ms | 1.06x faster | Significant (t=7.75) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| pickle | 14.0 us | 11.7 us | 1.19x faster | Significant (t=30.34) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| pickle_dict | 39.9 us | 33.9 us | 1.18x faster | Significant (t=26.40) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| pickle_list | 6.01 us | 4.93 us | 1.22x faster | Significant (t=32.54) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| pickle_pure_python | 407 us | 355 us | 1.15x faster | Significant (t=27.61) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| pidigits | 204 ms | 209 ms | 1.03x slower | Significant (t=-6.25) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| pprint_pformat | 2.07 sec | 1.80 sec | 1.15x faster | Significant (t=26.45) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| pprint_safe_repr | 1.01 sec | 887 ms | 1.14x faster | Significant (t=33.52) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| pyflate | 549 ms | 520 ms | 1.06x faster | Significant (t=19.61) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| python_startup | 15.0 ms | 11.3 ms | 1.33x faster | Significant (t=166.22) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| python_startup_no_site | 9.25 ms | 8.91 ms | 1.04x faster | Significant (t=20.29) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| raytrace | 435 ms | 354 ms | 1.23x faster | Significant (t=69.45) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| regex_compile | 181 ms | 158 ms | 1.14x faster | Significant (t=27.42) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| regex_dna | 170 ms | 179 ms | 1.06x slower | Significant (t=-22.45) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| regex_effbot | 3.35 ms | 3.58 ms | 1.07x slower | Significant (t=-5.46) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| regex_v8 | 22.5 ms | 22.7 ms | 1.01x slower | Not significant |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| richards | 59.7 ms | 50.5 ms | 1.18x faster | Significant (t=27.64) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| richards_super | 67.6 ms | 58.4 ms | 1.16x faster | Significant (t=19.45) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| scimark_fft | 458 ms | 388 ms | 1.18x faster | Significant (t=34.79) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| scimark_lu | 144 ms | 128 ms | 1.12x faster | Significant (t=25.74) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| scimark_monte_carlo | 92.2 ms | 76.4 ms | 1.21x faster | Significant (t=29.72) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| scimark_sor | 167 ms | 147 ms | 1.14x faster | Significant (t=24.19) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| scimark_sparse_mat_mult | 6.34 ms | 5.13 ms | 1.24x faster | Significant (t=17.16) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| spectral_norm | 139 ms | 123 ms | 1.13x faster | Significant (t=25.24) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| sqlalchemy_declarative | 202 ms | 191 ms | 1.06x faster | Significant (t=10.68) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| sqlalchemy_imperative | 30.5 ms | 29.1 ms | 1.05x faster | Significant (t=5.22) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| sqlglot_normalize | 151 ms | 133 ms | 1.13x faster | Significant (t=36.10) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| sqlglot_optimize | 74.3 ms | 66.3 ms | 1.12x faster | Significant (t=15.39) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| sqlglot_parse | 1.77 ms | 1.58 ms | 1.12x faster | Significant (t=24.81) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| sqlglot_transpile | 2.15 ms | 1.97 ms | 1.09x faster | Significant (t=10.86) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| sqlite_synth | 3.24 us | 2.71 us | 1.20x faster | Significant (t=27.24) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| sympy_expand | 632 ms | 559 ms | 1.13x faster | Significant (t=25.07) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| sympy_integrate | 25.8 ms | 23.2 ms | 1.11x faster | Significant (t=39.85) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| sympy_str | 385 ms | 342 ms | 1.13x faster | Significant (t=18.49) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| sympy_sum | 213 ms | 190 ms | 1.12x faster | Significant (t=22.03) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| telco | 9.14 ms | 7.49 ms | 1.22x faster | Significant (t=31.31) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| tomli_loads | 2.98 sec | 2.45 sec | 1.22x faster | Significant (t=48.85) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| tornado_http | 151 ms | 140 ms | 1.07x faster | Significant (t=15.44) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| typing_runtime_protocols | 165 us | 141 us | 1.17x faster | Significant (t=21.20) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| unpack_sequence | 49.6 ns | 53.3 ns | 1.07x slower | Significant (t=-13.60) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| unpickle | 18.7 us | 15.7 us | 1.19x faster | Significant (t=18.12) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| unpickle_list | 6.07 us | 5.58 us | 1.09x faster | Significant (t=9.14) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| unpickle_pure_python | 285 us | 251 us | 1.14x faster | Significant (t=20.13) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| xml_etree_generate | 117 ms | 101 ms | 1.15x faster | Significant (t=11.24) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| xml_etree_iterparse | 129 ms | 116 ms | 1.11x faster | Significant (t=26.95) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| xml_etree_parse | 171 ms | 164 ms | 1.04x faster | Significant (t=9.10) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
| xml_etree_process | 80.9 ms | 69.6 ms | 1.16x faster | Significant (t=15.29) |
+----------------------------------+-----------------------+--------------------+--------------+------------------------+
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment