[issue37388] unknown error handlers should be reported early
STINNER Victor
report at bugs.python.org
Tue Jun 25 20:12:39 EDT 2019
STINNER Victor <vstinner at redhat.com> added the comment:
I compared ref (commit e1a63c4f21011a3ae77dff624196561070c83446) to patch (commit ed076ed467264b43ed01a8223ca65b133b590919). I ran bench.py using:
# edit Makefile.pre.in to use:
PROFILE_TASK=-m test.regrtest --pgo test_unicode test_codecs
./configure --enable-optimizations && make
./python -m venv env && env/bin/python -m pip install -U pyperf
./env/bin/python bench.py -o <file>.json
$ python3 -m pyperf compare_to ref_e1a63c4f2.json patch_ed076ed4.json
0B: Mean +- std dev: [ref_e1a63c4f2] 76.7 ns +- 0.9 ns -> [patch_ed076ed4] 77.5 ns +- 2.9 ns: 1.01x slower (+1%)
1B: Mean +- std dev: [ref_e1a63c4f2] 92.9 ns +- 0.8 ns -> [patch_ed076ed4] 94.0 ns +- 2.4 ns: 1.01x slower (+1%)
5B: Mean +- std dev: [ref_e1a63c4f2] 106 ns +- 2 ns -> [patch_ed076ed4] 110 ns +- 2 ns: 1.04x slower (+4%)
10B: Mean +- std dev: [ref_e1a63c4f2] 105 ns +- 1 ns -> [patch_ed076ed4] 109 ns +- 1 ns: 1.03x slower (+3%)
25B: Mean +- std dev: [ref_e1a63c4f2] 108 ns +- 3 ns -> [patch_ed076ed4] 111 ns +- 3 ns: 1.03x slower (+3%)
100B: Mean +- std dev: [ref_e1a63c4f2] 114 ns +- 1 ns -> [patch_ed076ed4] 115 ns +- 2 ns: 1.01x slower (+1%)
1000B: Mean +- std dev: [ref_e1a63c4f2] 267 ns +- 3 ns -> [patch_ed076ed4] 253 ns +- 4 ns: 1.06x faster (-5%)
$ python3 -m pyperf compare_to ref_e1a63c4f2.json patch_ed076ed4.json --table
+-----------+---------------+-----------------------------+
| Benchmark | ref_e1a63c4f2 | patch_ed076ed4 |
+===========+===============+=============================+
| 0B | 76.7 ns | 77.5 ns: 1.01x slower (+1%) |
+-----------+---------------+-----------------------------+
| 1B | 92.9 ns | 94.0 ns: 1.01x slower (+1%) |
+-----------+---------------+-----------------------------+
| 5B | 106 ns | 110 ns: 1.04x slower (+4%) |
+-----------+---------------+-----------------------------+
| 10B | 105 ns | 109 ns: 1.03x slower (+3%) |
+-----------+---------------+-----------------------------+
| 25B | 108 ns | 111 ns: 1.03x slower (+3%) |
+-----------+---------------+-----------------------------+
| 100B | 114 ns | 115 ns: 1.01x slower (+1%) |
+-----------+---------------+-----------------------------+
| 1000B | 267 ns | 253 ns: 1.06x faster (-5%) |
+-----------+---------------+-----------------------------+
The overhead of my change is around 1 ns, 4 ns (on 106 ns) in the worst case (5B).
The change "looks" faster on the 1000B case, but it's likely a glitch of PGO compilation which is not really deterministic.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue37388>
_______________________________________
More information about the Python-bugs-list
mailing list