bpo-44889: Specialize LOAD_METHOD with PEP 659 adaptive interpreter by Fidget-Spinner · Pull Request #27722 · python/cpython
Needs some cleanup before it's ready for review.
Pyperformance right now, vs main branch 9816777:
pyperf compare_to 2021-08-10_13-53-main-9816777861a3.json.gz 2021-08-10_16-21-specialize_load_method-a3d6dd34a147.json.gz -G --min-speed=2
Slower (9):
- scimark_sparse_mat_mult: 13.3 ms +- 0.2 ms -> 14.2 ms +- 0.2 ms: 1.06x slower
- nqueens: 225 ms +- 4 ms -> 236 ms +- 20 ms: 1.05x slower
- pathlib: 52.4 ms +- 0.9 ms -> 54.6 ms +- 6.9 ms: 1.04x slower
- scimark_fft: 1.01 sec +- 0.01 sec -> 1.05 sec +- 0.06 sec: 1.04x slower
- pickle_list: 9.94 us +- 0.15 us -> 10.2 us +- 0.1 us: 1.03x slower
- unpack_sequence: 140 ns +- 2 ns -> 145 ns +- 2 ns: 1.03x slower
- scimark_lu: 422 ms +- 6 ms -> 435 ms +- 12 ms: 1.03x slower
- xml_etree_parse: 383 ms +- 3 ms -> 391 ms +- 4 ms: 1.02x slower
- crypto_pyaes: 255 ms +- 2 ms -> 261 ms +- 2 ms: 1.02x slower
Faster (15):
- logging_silent: 405 ns +- 12 ns -> 328 ns +- 6 ns: 1.24x faster
- deltablue: 14.9 ms +- 0.2 ms -> 13.7 ms +- 0.2 ms: 1.09x faster
- logging_simple: 18.3 us +- 0.3 us -> 16.8 us +- 0.3 us: 1.09x faster
- pickle_pure_python: 1.05 ms +- 0.04 ms -> 975 us +- 11 us: 1.08x faster
- logging_format: 20.1 us +- 0.3 us -> 18.6 us +- 0.3 us: 1.08x faster
- raytrace: 993 ms +- 6 ms -> 938 ms +- 8 ms: 1.06x faster
- hexiom: 22.3 ms +- 0.3 ms -> 21.2 ms +- 0.4 ms: 1.05x faster
- pickle_dict: 61.4 us +- 0.2 us -> 58.9 us +- 0.4 us: 1.04x faster
- pyflate: 1.52 sec +- 0.01 sec -> 1.46 sec +- 0.01 sec: 1.04x faster
- richards: 158 ms +- 2 ms -> 153 ms +- 2 ms: 1.03x faster
- chaos: 228 ms +- 2 ms -> 222 ms +- 2 ms: 1.02x faster
- json_dumps: 31.8 ms +- 0.5 ms -> 31.1 ms +- 0.4 ms: 1.02x faster
- tornado_http: 364 ms +- 7 ms -> 356 ms +- 6 ms: 1.02x faster
- unpickle_pure_python: 711 us +- 8 us -> 696 us +- 8 us: 1.02x faster
- go: 467 ms +- 6 ms -> 457 ms +- 4 ms: 1.02x faster
Benchmark hidden because not significant (34): 2to3, chameleon, django_template, dulwich_log, fannkuch, float, json_loads, mako, meteor_contest, nbody, pickle, pidigits, python_startup, python_startup_no_site, regex_compile, regex_dna, regex_effbot, regex_v8, scimark_monte_carlo, scimark_sor, spectral_norm, sqlalchemy_declarative, sqlalchemy_imperative, sqlite_synth, sympy_expand, sympy_integrate, sympy_sum, sympy_str, telco, unpickle, unpickle_list, xml_etree_iterparse, xml_etree_generate, xml_etree_process
Geometric mean: 1.01x faster