bpo-45214: add the LOAD_NONE opcode by iritkatriel · Pull Request #28376 · python/cpython
@pablogsal Are your results consistent, as in if you compare two runs of the same python version you see no diff? I don't see a reason why LOAD_NONE would make unpickle 3% slower.
I ran it again and is quite consistent. Here is the comparison of main, and two independent runs of the same commit:
❯ pyperf compare_to json/* 2021-09-19_18-58-[bpo-45214](https://bugs.python.org/issue45214)-loadNone-40cda4880a8b.json.gz --table --min-speed 3
+-----------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| Benchmark | json/2021-09-07_11-03-main-2d7393719033.json.gz | json/2021-09-19_18-58-[bpo-45214](https://bugs.python.org/issue45214)-loadNone-40cda4880a8b.json.gz | 2021-09-19_18-58-[bpo-45214](https://bugs.python.org/issue45214)-loadNone-40cda4880a8b.json.gz |
+=================+=================================================+===============================================================+==========================================================+
| django_template | 48.3 ms | 49.8 ms: 1.03x slower | not significant |
+-----------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| unpickle | 15.9 us | 16.6 us: 1.04x slower | 16.4 us: 1.03x slower |
+-----------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| Geometric mean | (ref) | 1.00x slower | 1.00x slower |
+-----------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
Benchmark hidden because not significant (56): 2to3, chameleon, chaos, crypto_pyaes, deltablue, dulwich_log, fannkuch, float, go, hexiom, json_dumps, json_loads, logging_format, logging_silent, logging_simple, mako, meteor_contest, nbody, nqueens, pathlib, pickle, pickle_dict, pickle_list, pickle_pure_python, pidigits, pyflate, python_startup, python_startup_no_site, raytrace, regex_compile, regex_dna, regex_effbot, regex_v8, richards, scimark_fft, scimark_lu, scimark_monte_carlo, scimark_sor, scimark_sparse_mat_mult, spectral_norm, sqlalchemy_declarative, sqlalchemy_imperative, sqlite_synth, sympy_expand, sympy_integrate, sympy_sum, sympy_str, telco, tornado_http, unpack_sequence, unpickle_list, unpickle_pure_python, xml_etree_parse, xml_etree_iterparse, xml_etree_generate, xml_etree_process