◐ Shell
clean mode source ↗

bpo-46841: Improve the failure stats for `COMPARE_OP` by brandtbucher · Pull Request #31663 · python/cpython

With the move to inline caching, jumps are getting a bit longer. This adds new category of COMPARE_OP failures for the (increasingly more common) case where a COMPARE_OP instruction is followed by an EXTENDED_ARG.

New stats for a full pyperformance run:

Kind Count Ratio
unquickened 7348739 0.4%
specialization.deferred 359371048 21.7%
specialization.deopt 15730 0.0%
hit 1289210975 77.8%
miss 943057 0.1%

Specialization attempts

Count Ratio
Success 289083 4.8%
Failure 5723386 95.2%
Failure kind Count Ratio
extended arg 2473174 43.2%
not followed by cond jump 1258612 22.0%
float long 671682 11.7%
set 579241 10.1%
different types 165539 2.9%
bool 137038 2.4%
tuple 119632 2.1%
other 115566 2.0%
big int 95547 1.7%
bytes 46481 0.8%
baseobject 37335 0.7%
list 22634 0.4%
string 704 0.0%
long float 201 0.0%

https://bugs.python.org/issue46841