Skip to content

Conversation

@iritkatriel
Copy link
Member

@iritkatriel iritkatriel commented Sep 15, 2021

@iritkatriel iritkatriel changed the title add the LOAD_NONE opcode bpo-45214: add the LOAD_NONE opcode Sep 15, 2021
Copy link
Member

@gvanrossum gvanrossum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That’s an impeccable PR. Do you have hard perf numbers for PyPerformance? Pablo may be able to help you (he has a benchmark machine set up at work).

@markshannon
Copy link
Member

OOI, why did this end up as the chosen design, as opposed to LOAD_CONST_COMMON, or using combined instructions?

@iritkatriel
Copy link
Member Author

OOI, why did this end up as the chosen design, as opposed to LOAD_CONST_COMMON, or using combined instructions?

I don't think it's been definitely decided yet (this is why I did the refactor PRs first so we can more easily experiment).

The thinking is that None is so common that it may be faster for it to have a dedicated opcode (and another STORE_FAST_NONE). There will probably be another LOAD_COMMON_CONST opcode for True, False and a few others (zeros, 0.5, 2.0, ... ). Then there is the question of whether to fold MAKE_INT into that as I did in not PR or have a separate MAKE_INT opcode which takes items from the small-int array (I think you suggested to split out MAKE_INT before your vacation, or maybe it was Guido).

@markshannon
Copy link
Member

I don't think it's been definitely decided yet (this is why I did the refactor PRs first so we can more easily experiment).

👍

As an aside, do we know how common the use of None is if we exclude return None and if ... is None which are candidates for combined instructions?

@gvanrossum
Copy link
Member

To count that, one could do this experiment: take this PR, add. Dedicated RETURN_NONE op code, and count how many LOAD_NONE op codes are generated. Easy to add to tools/scripts/count_opcodes.py.

@iritkatriel
Copy link
Member Author

I disabled a bunch of background stuff and meditated while the benchmarks ran, hopefully these results are real:

+-------------------------+---------+-----------------------+
| Benchmark               | old     | new                   |
+=========================+=========+=======================+
| pickle_dict             | 24.4 us | 23.3 us: 1.05x faster |
+-------------------------+---------+-----------------------+
| xml_etree_generate      | 108 ms  | 104 ms: 1.04x faster  |
+-------------------------+---------+-----------------------+
| go                      | 206 ms  | 199 ms: 1.03x faster  |
+-------------------------+---------+-----------------------+
| regex_v8                | 25.5 ms | 24.8 ms: 1.03x faster |
+-------------------------+---------+-----------------------+
| nbody                   | 148 ms  | 144 ms: 1.03x faster  |
+-------------------------+---------+-----------------------+
| scimark_sparse_mat_mult | 6.46 ms | 6.28 ms: 1.03x faster |
+-------------------------+---------+-----------------------+
| pickle_list             | 4.18 us | 4.08 us: 1.02x faster |
+-------------------------+---------+-----------------------+
| json_dumps              | 15.1 ms | 14.8 ms: 1.02x faster |
+-------------------------+---------+-----------------------+
| regex_effbot            | 3.48 ms | 3.42 ms: 1.02x faster |
+-------------------------+---------+-----------------------+
| logging_silent          | 164 ns  | 161 ns: 1.02x faster  |
+-------------------------+---------+-----------------------+
| richards                | 73.3 ms | 72.1 ms: 1.02x faster |
+-------------------------+---------+-----------------------+
| unpickle_list           | 4.91 us | 4.84 us: 1.02x faster |
+-------------------------+---------+-----------------------+
| pathlib                 | 50.5 ms | 49.8 ms: 1.02x faster |
+-------------------------+---------+-----------------------+
| sqlalchemy_imperative   | 22.7 ms | 22.3 ms: 1.01x faster |
+-------------------------+---------+-----------------------+
| xml_etree_process       | 78.8 ms | 77.7 ms: 1.01x faster |
+-------------------------+---------+-----------------------+
| logging_format          | 8.13 us | 8.03 us: 1.01x faster |
+-------------------------+---------+-----------------------+
| json_loads              | 28.9 us | 28.6 us: 1.01x faster |
+-------------------------+---------+-----------------------+
| scimark_sor             | 193 ms  | 190 ms: 1.01x faster  |
+-------------------------+---------+-----------------------+
| sympy_expand            | 597 ms  | 590 ms: 1.01x faster  |
+-------------------------+---------+-----------------------+
| sympy_sum               | 197 ms  | 195 ms: 1.01x faster  |
+-------------------------+---------+-----------------------+
| meteor_contest          | 111 ms  | 109 ms: 1.01x faster  |
+-------------------------+---------+-----------------------+
| python_startup          | 13.9 ms | 13.7 ms: 1.01x faster |
+-------------------------+---------+-----------------------+
| raytrace                | 437 ms  | 432 ms: 1.01x faster  |
+-------------------------+---------+-----------------------+
| nqueens                 | 110 ms  | 109 ms: 1.01x faster  |
+-------------------------+---------+-----------------------+
| django_template         | 51.3 ms | 50.9 ms: 1.01x faster |
+-------------------------+---------+-----------------------+
| scimark_fft             | 437 ms  | 434 ms: 1.01x faster  |
+-------------------------+---------+-----------------------+
| pyflate                 | 669 ms  | 663 ms: 1.01x faster  |
+-------------------------+---------+-----------------------+
| chaos                   | 98.4 ms | 97.6 ms: 1.01x faster |
+-------------------------+---------+-----------------------+
| crypto_pyaes            | 105 ms  | 105 ms: 1.01x faster  |
+-------------------------+---------+-----------------------+
| sympy_integrate         | 24.7 ms | 24.5 ms: 1.01x faster |
+-------------------------+---------+-----------------------+
| regex_compile           | 175 ms  | 175 ms: 1.00x slower  |
+-------------------------+---------+-----------------------+
| fannkuch                | 495 ms  | 499 ms: 1.01x slower  |
+-------------------------+---------+-----------------------+
| mako                    | 16.5 ms | 16.7 ms: 1.01x slower |
+-------------------------+---------+-----------------------+
| deltablue               | 6.44 ms | 6.53 ms: 1.01x slower |
+-------------------------+---------+-----------------------+
| sqlite_synth            | 2.90 us | 2.95 us: 1.02x slower |
+-------------------------+---------+-----------------------+
| unpack_sequence         | 46.5 ns | 48.4 ns: 1.04x slower |
+-------------------------+---------+-----------------------+
| pidigits                | 194 ms  | 203 ms: 1.05x slower  |
+-------------------------+---------+-----------------------+
| Geometric mean          | (ref)   | 1.01x faster          |
+-------------------------+---------+-----------------------+

Benchmark hidden because not significant (21): sqlalchemy_declarative, unpickle, logging_simple, xml_etree_parse, float, xml_etree_iterparse, telco, scimark_monte_carlo, chameleon, pickle, sympy_str, unpickle_pure_python, hexiom, regex_dna, tornado_http, dulwich_log, python_startup_no_site, pickle_pure_python, 2to3, scimark_lu, spectral_norm

@gvanrossum
Copy link
Member

gvanrossum commented Sep 16, 2021 via email

@iritkatriel
Copy link
Member Author

I looked at dis output for worst benchmark, pidigits (that result seems repeatable). I don't see any difference except what we expect (I thought maybe some optimisation is missed). Maybe the PREDICTs I put in ceval are wrong for generators, not sure. Will continue looking.

@iritkatriel
Copy link
Member Author

iritkatriel commented Sep 16, 2021

I looked at dis output for worst benchmark, pidigits (that result seems repeatable).

It's probably not repeatable, there's some noise and how I launch the benchmark seems to make a difference. (3 shell commands is noisy, one shell command that begins with "repeat 3" is more stable).

I just repeated the whole things, the overall picture is similar reversed and this time pidgits is insignificant, and other benchmarks are bad:

+-------------------------+---------+-----------------------+
| Benchmark               | old1    | new1                  |
+=========================+=========+=======================+
| scimark_sparse_mat_mult | 6.56 ms | 6.29 ms: 1.04x faster |
+-------------------------+---------+-----------------------+
| xml_etree_generate      | 108 ms  | 104 ms: 1.04x faster  |
+-------------------------+---------+-----------------------+
| xml_etree_process       | 79.6 ms | 77.6 ms: 1.03x faster |
+-------------------------+---------+-----------------------+
| scimark_monte_carlo     | 93.8 ms | 92.3 ms: 1.02x faster |
+-------------------------+---------+-----------------------+
| go                      | 205 ms  | 202 ms: 1.02x faster  |
+-------------------------+---------+-----------------------+
| scimark_sor             | 193 ms  | 191 ms: 1.01x faster  |
+-------------------------+---------+-----------------------+
| raytrace                | 436 ms  | 432 ms: 1.01x faster  |
+-------------------------+---------+-----------------------+
| sympy_expand            | 604 ms  | 601 ms: 1.01x faster  |
+-------------------------+---------+-----------------------+
| scimark_lu              | 180 ms  | 181 ms: 1.01x slower  |
+-------------------------+---------+-----------------------+
| pickle_pure_python      | 470 us  | 475 us: 1.01x slower  |
+-------------------------+---------+-----------------------+
| crypto_pyaes            | 106 ms  | 107 ms: 1.01x slower  |
+-------------------------+---------+-----------------------+
| pickle_list             | 4.18 us | 4.23 us: 1.01x slower |
+-------------------------+---------+-----------------------+
| chaos                   | 98.5 ms | 99.9 ms: 1.01x slower |
+-------------------------+---------+-----------------------+
| dulwich_log             | 97.7 ms | 99.1 ms: 1.01x slower |
+-------------------------+---------+-----------------------+
| fannkuch                | 497 ms  | 506 ms: 1.02x slower  |
+-------------------------+---------+-----------------------+
| hexiom                  | 9.36 ms | 9.53 ms: 1.02x slower |
+-------------------------+---------+-----------------------+
| pyflate                 | 669 ms  | 682 ms: 1.02x slower  |
+-------------------------+---------+-----------------------+
| richards                | 73.0 ms | 74.4 ms: 1.02x slower |
+-------------------------+---------+-----------------------+
| logging_format          | 8.03 us | 8.19 us: 1.02x slower |
+-------------------------+---------+-----------------------+
| regex_compile           | 175 ms  | 179 ms: 1.02x slower  |
+-------------------------+---------+-----------------------+
| logging_silent          | 164 ns  | 168 ns: 1.02x slower  |
+-------------------------+---------+-----------------------+
| pickle_dict             | 24.5 us | 25.1 us: 1.02x slower |
+-------------------------+---------+-----------------------+
| django_template         | 49.0 ms | 52.0 ms: 1.06x slower |
+-------------------------+---------+-----------------------+
| python_startup          | 13.7 ms | 14.6 ms: 1.06x slower |
+-------------------------+---------+-----------------------+
| 2to3                    | 328 ms  | 349 ms: 1.06x slower  |
+-------------------------+---------+-----------------------+
| python_startup_no_site  | 10.1 ms | 10.7 ms: 1.07x slower |
+-------------------------+---------+-----------------------+
| Geometric mean          | (ref)   | 1.01x slower          |
+-------------------------+---------+-----------------------+

Benchmark hidden because not significant (30): xml_etree_parse, xml_etree_iterparse, sympy_sum, float, pidigits, tornado_http, sqlalchemy_imperative, sympy_integrate, telco, nbody, sympy_str, scimark_fft, unpickle, spectral_norm, chameleon, pickle, sqlalchemy_declarative, unpickle_pure_python, meteor_contest, logging_simple, json_dumps, mako, nqueens, unpickle_list, unpack_sequence, json_loads, deltablue, sqlite_synth, regex_dna, pathlib
Ignored benchmarks (2) of ../cpython/old1.json: regex_effbot, regex_v8

@gvanrossum
Copy link
Member

Don't worry too much about pidigits. It mostly exercises very long integer arithmetic, so the difference is most likely due to some other random CPU cache effect.

@iritkatriel
Copy link
Member Author

@pablogsal Is your benchmark machine less noisy than what I posted above?

@pablogsal
Copy link
Member

@pablogsal Is your benchmark machine less noisy than what I posted above?

I will try to benchmark this tomorrow on my benchmark machine. If it results to be less noisy, I can try to give you access so you can benchmark there if you find it useful.

@pablogsal
Copy link
Member

pablogsal commented Sep 17, 2021

I tried to benchmark but I keep getting errors regarding something with the freeze module:

021-09-17 21:31:13,985: /home/pablogsal/github/python/benchmark/Programs/_freeze_module importlib._bootstrap /home/pablogsal/github/python/benchmark/Lib/importlib/_bootstrap.py /home/pablogsal/github/python/benchmark/Python/frozen_modules/importlib__bootstrap.h
2021-09-17 21:31:13,986: make[3]: /home/pablogsal/github/python/benchmark/Programs/_freeze_module: No such file or directory
2021-09-17 21:31:13,986: make[3]: *** [Makefile:766: Python/frozen_modules/importlib__bootstrap.h] Error 127
2021-09-17 21:31:13,986: make[3]: Leaving directory '/home/pablogsal/github/python/benchmarks/temp_dir/build'
2021-09-17 21:31:13,987: make[2]: *** [Makefile:535: build_all_generate_profile] Error 2
2021-09-17 21:31:13,987: make[2]: Leaving directory '/home/pablogsal/github/python/benchmarks/temp_dir/build'
2021-09-17 21:31:13,987: make[1]: *** [Makefile:511: profile-gen-stamp] Error 2
2021-09-17 21:31:13,987: make[1]: Leaving directory '/home/pablogsal/github/python/benchmarks/temp_dir/build'
2021-09-17 21:31:13,988: make: *** [Makefile:523: profile-run-stamp] Error 2
2021-09-17 21:31:13,988: Command make profile-opt failed with exit code 2
2021-09-17 21:31:14,009: Command /home/pablogsal/github/python/benchmarks/venv/bin/python -m pyperformance compile /home/pablogsal/github/python/benchmarks/bench.conf [bpo-45214](https://bugs.python.org/issue45214)-loadNone [bpo-45214](https://bugs.python.org/issue45214)-loadNone failed with exit code 11
2021-09-17 21:31:14,009: Benchmark exit code: 11
2021-09-17 21:31:14,010: FAILED: [bpo-45214](https://bugs.python.org/issue45214)-loadNone-[bpo-45214](https://bugs.python.org/issue45214)-loadNone

I tried to apply the diff clean on main and regenerate it but I keep getting them :(

@pablogsal
Copy link
Member

@ericsnowcurrently do you know why this may be happening?

@pablogsal
Copy link
Member

pablogsal commented Sep 17, 2021

Oh, actually since the 15 of September all benchmarks on the benchmark server are failing with the same error :(

https://speed.python.org/

@pablogsal
Copy link
Member

@ericsnowcurrently
Copy link
Member

I'm pretty sure Victor fixed this earlier.

@pablogsal
Copy link
Member

pablogsal commented Sep 19, 2021

Here are the results of the benchark:

$ pyperf compare_to json/2021-09-07_11-03-main-2d7393719033.json.gz 2021-09-19_18-58-[bpo-45214](https://bugs.python.org/issue45214)-loadNone-40cda4880a8b.json.gz -G --table --min-speed 3

+----------------+------------------------------------+--------------------------------------------------+
| Benchmark      | 2021-09-07_11-03-main-2d7393719033 | 2021-09-19_18-58-[bpo-45214](https://bugs.python.org/issue45214)-loadNone-40cda4880a8b |
+================+====================================+==================================================+
| unpickle       | 15.9 us                            | 16.4 us: 1.03x slower                            |
+----------------+------------------------------------+--------------------------------------------------+
| Geometric mean | (ref)                              | 1.00x slower                                     |
+----------------+------------------------------------+--------------------------------------------------+

Benchmark hidden because not significant (57): nbody, scimark_sor, regex_dna, crypto_pyaes, unpack_sequence, xml_etree_process, pyflate, logging_simple, mako, xml_etree_generate, scimark_lu, go, sympy_integrate, nqueens, logging_format, json_dumps, sqlite_synth, logging_silent, chameleon, xml_etree_parse, tornado_http, sympy_sum, regex_effbot, regex_v8, sympy_expand, pickle, pidigits, pathlib, deltablue, python_startup, sympy_str, sqlalchemy_declarative, raytrace, fannkuch, scimark_monte_carlo, pickle_list, unpickle_list, regex_compile, python_startup_no_site, meteor_contest, pickle_dict, float, pickle_pure_python, scimark_

@iritkatriel
Copy link
Member Author

@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.

Anyway, the picture emerging is that while timeit clearly shows "x=None" being about 8% faster with LOAD_NONE, overall this doesn't seem to make a measurable difference on benchmarks. I think something like a RETURN_NONE opcode which replaces a pair of opcodes. I will try that (but not sure how much time I will have this week - got some distractions).

@pablogsal
Copy link
Member

pablogsal commented Sep 20, 2021

@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

@gvanrossum
Copy link
Member

gvanrossum commented Sep 20, 2021

I wouldn't give up on this completely yet, but it would be nice if we could measure e.g. the size decrease in pyc files.

@pablogsal There is some weird shit in the table, e.g.

json/2021-09-19_18-58-[bpo-45214](https://bugs.python.org/issue45214)-loadNone-40cda4880a8b.json.gz

Is that just something that was copy-pasted wrong? I could imagine that what you actually ran was

json/2021-09-19_18-58-[bpo-45214](https://bugs.python.org/issue45214)-loadNone-40cda4880a8b.json.gz

and some tool expanded the bpo-45214 reference in the middle of the filename to Markdown, and that got picked up when you copied-pasted it.

I also noticed that you specified --min-speed 3, which suppresses a lot of noise that could also be considered detail. (My personal favorite way of running pyperf compare_to is to use -G and not --table. But tastes differ.)

@pablogsal
Copy link
Member

pablogsal commented Sep 20, 2021

@pablogsal There is some weird shit in the table, e.g.

Yeah, I have no idea where that is coming from. It may be GitHub recognizing the bpo prefix and doing some markdon shenaningans.

(My personal favorite way of running pyperf compare_to is to use -G and not --table. But tastes differ.)

Yeah, I normally also use -G but one problem is that -G only works when comparing 2 files, not more:

$ pyperf compare_to json/* 2021-09-19_18-58-[bpo-45214](https://bugs.python.org/issue45214)-loadNone-40cda4880a8b.json.gz --table -G
ERROR: --by-speed only works on two benchmark files

I also noticed that you specified --min-speed 3, which suppresses a lot of noise that could also be considered detail.

Here is the full table:

$pyperf compare_to json/* --table
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| Benchmark               | json/2021-09-07_11-03-main-2d7393719033.json.gz | json/2021-09-19_18-58-loadNone-40cda4880a8b.json.gz              | 2021-09-19_18-58-loadNone-40cda4880a8b.json.gz |
+=========================+=================================================+===============================================================+==========================================================+
| 2to3                    | 342 ms                                          | 346 ms: 1.01x slower                                          | 348 ms: 1.02x slower                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| chameleon               | 9.84 ms                                         | 9.89 ms: 1.01x slower                                         | not significant                                          |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| chaos                   | 98.8 ms                                         | 100 ms: 1.02x slower                                          | 102 ms: 1.03x slower                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| crypto_pyaes            | 112 ms                                          | 111 ms: 1.01x faster                                          | 109 ms: 1.02x faster                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| deltablue               | 6.54 ms                                         | 6.59 ms: 1.01x slower                                         | not significant                                          |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| django_template         | 48.3 ms                                         | 49.8 ms: 1.03x slower                                         | 49.4 ms: 1.02x slower                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| dulwich_log             | 81.3 ms                                         | 82.4 ms: 1.01x slower                                         | 82.3 ms: 1.01x slower                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| fannkuch                | 514 ms                                          | 526 ms: 1.02x slower                                          | 515 ms: 1.00x slower                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| float                   | 104 ms                                          | 105 ms: 1.01x slower                                          | 105 ms: 1.01x slower                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| go                      | 216 ms                                          | 220 ms: 1.02x slower                                          | 214 ms: 1.01x faster                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| hexiom                  | 9.34 ms                                         | 9.51 ms: 1.02x slower                                         | 9.45 ms: 1.01x slower                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| json_dumps              | 16.2 ms                                         | not significant                                               | 16.0 ms: 1.01x faster                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| json_loads              | 33.3 us                                         | 33.6 us: 1.01x slower                                         | 33.9 us: 1.02x slower                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| logging_format          | 7.72 us                                         | 7.77 us: 1.01x slower                                         | 7.66 us: 1.01x faster                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| logging_silent          | 163 ns                                          | 160 ns: 1.02x faster                                          | not significant                                          |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| logging_simple          | 7.09 us                                         | not significant                                               | 7.00 us: 1.01x faster                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| mako                    | 16.6 ms                                         | 16.7 ms: 1.00x slower                                         | 16.4 ms: 1.01x faster                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| meteor_contest          | 128 ms                                          | 129 ms: 1.01x slower                                          | 129 ms: 1.01x slower                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| nbody                   | 158 ms                                          | not significant                                               | 154 ms: 1.03x faster                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| nqueens                 | 107 ms                                          | 107 ms: 1.01x faster                                          | 107 ms: 1.01x faster                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| pathlib                 | 20.6 ms                                         | 20.3 ms: 1.01x faster                                         | not significant                                          |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| pickle                  | 12.4 us                                         | 12.2 us: 1.01x faster                                         | not significant                                          |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| pickle_dict             | 31.7 us                                         | 32.2 us: 1.02x slower                                         | 31.9 us: 1.01x slower                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| pickle_pure_python      | 470 us                                          | 474 us: 1.01x slower                                          | 474 us: 1.01x slower                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| pidigits                | 235 ms                                          | not significant                                               | 235 ms: 1.00x slower                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| pyflate                 | 672 ms                                          | not significant                                               | 663 ms: 1.01x faster                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| python_startup          | 11.8 ms                                         | 11.9 ms: 1.01x slower                                         | 11.8 ms: 1.00x slower                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| python_startup_no_site  | 8.40 ms                                         | 8.43 ms: 1.00x slower                                         | 8.45 ms: 1.01x slower                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| raytrace                | 435 ms                                          | not significant                                               | 436 ms: 1.00x slower                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| regex_compile           | 183 ms                                          | 185 ms: 1.01x slower                                          | 184 ms: 1.01x slower                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| regex_dna               | 250 ms                                          | 246 ms: 1.02x faster                                          | 244 ms: 1.03x faster                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| regex_effbot            | 3.69 ms                                         | 3.73 ms: 1.01x slower                                         | not significant                                          |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| regex_v8                | 28.9 ms                                         | 28.8 ms: 1.00x faster                                         | not significant                                          |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| richards                | 74.9 ms                                         | 76.5 ms: 1.02x slower                                         | 76.1 ms: 1.01x slower                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| scimark_fft             | 444 ms                                          | 441 ms: 1.01x faster                                          | 449 ms: 1.01x slower                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| scimark_lu              | 184 ms                                          | not significant                                               | 182 ms: 1.01x faster                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| scimark_sor             | 199 ms                                          | 194 ms: 1.03x faster                                          | 194 ms: 1.03x faster                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| scimark_sparse_mat_mult | 5.73 ms                                         | not significant                                               | 5.78 ms: 1.01x slower                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| spectral_norm           | 149 ms                                          | not significant                                               | 151 ms: 1.01x slower                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| sqlalchemy_imperative   | 21.8 ms                                         | 22.3 ms: 1.02x slower                                         | 22.2 ms: 1.02x slower                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| sqlite_synth            | 3.13 us                                         | 3.18 us: 1.01x slower                                         | not significant                                          |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| sympy_integrate         | 26.9 ms                                         | 26.8 ms: 1.00x faster                                         | 26.6 ms: 1.01x faster                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| sympy_sum               | 206 ms                                          | 208 ms: 1.01x slower                                          | not significant                                          |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| sympy_str               | 361 ms                                          | 364 ms: 1.01x slower                                          | not significant                                          |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| telco                   | 7.44 ms                                         | 7.57 ms: 1.02x slower                                         | 7.63 ms: 1.03x slower                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| unpack_sequence         | 55.8 ns                                         | not significant                                               | 54.6 ns: 1.02x faster                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| unpickle                | 15.9 us                                         | 16.6 us: 1.04x slower                                         | 16.4 us: 1.03x slower                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| unpickle_pure_python    | 340 us                                          | 344 us: 1.01x slower                                          | 346 us: 1.02x slower                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| xml_etree_iterparse     | 126 ms                                          | not significant                                               | 128 ms: 1.01x slower                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| xml_etree_generate      | 110 ms                                          | 108 ms: 1.02x faster                                          | 109 ms: 1.01x faster                                     |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| xml_etree_process       | 82.1 ms                                         | 80.1 ms: 1.02x faster                                         | 80.6 ms: 1.02x faster                                    |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+
| Geometric mean          | (ref)                                           | 1.00x slower                                                  | 1.00x slower                                             |
+-------------------------+-------------------------------------------------+---------------------------------------------------------------+----------------------------------------------------------+

Benchmark hidden because not significant (7): pickle_list, scimark_monte_carlo, sqlalchemy_declarative, sympy_expand, tornado_http, unpickle_list, xml_etree_parse

@pablogsal
Copy link
Member

pablogsal commented Sep 20, 2021

Yeah, I have no idea where that is coming from. It may be GitHub recognizing the bpo prefix and doing some markdon shenaningans.

Confirmed, is GitHub. Try to make a comment with something like "bpo-45214": it will automatically add the link even if you write it as text

@iritkatriel
Copy link
Member Author

All the analysis here is out of date now, closing.

@iritkatriel iritkatriel deleted the bpo-45214-loadNone branch May 20, 2022 11:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants