Skip to content

Latest commit

 

History

History
7350 lines (7026 loc) · 160 KB

File metadata and controls

7350 lines (7026 loc) · 160 KB

Execution counts

Execution counts for Tier 1 instructions.

The "miss ratio" column shows the percentage of times the instruction executed that it deoptimized. When this happens, the base unspecialized instruction is not counted.

Name Base Count Head Count Change
ENTER_EXECUTOR 743,835,475 1,598,262,611 114.9%
CALL_KW_BOUND_METHOD 1,684,562 140,421 -91.7%
JUMP_BACKWARD_JIT 1,375,133,736 126,071,935 -90.8%
STORE_GLOBAL 6,156,329 794,769 -87.1%
STORE_FAST_LOAD_FAST 62,088,880 8,062,985 -87.0%
FOR_ITER_GEN 345,643,030 46,719,186 -86.5%
UNARY_NOT 56,950,334 8,528,689 -85.0%
UNPACK_SEQUENCE_TUPLE 166,050,468 24,901,852 -85.0%
FOR_ITER_RANGE 249,679,501 43,112,075 -82.7%
CALL_BOUND_METHOD_GENERAL 7,195,406 1,366,477 -81.0%
UNARY_INVERT 9,835,718 1,870,863 -81.0%
DELETE_SUBSCR 131,380,678 26,078,973 -80.2%
BINARY_OP_ADD_FLOAT 205,200,984 49,743,177 -75.8%
STORE_SUBSCR_LIST_INT 97,599,025 24,997,397 -74.4%
FOR_ITER_LIST 783,900,012 221,879,697 -71.7%
BINARY_OP_EXTEND 241,728,999 71,365,972 -70.5%
LOAD_COMMON_CONSTANT 28,457,520 8,753,939 -69.2%
UNARY_NEGATIVE 139,585,140 43,446,273 -68.9%
FOR_ITER 310,183,357 99,060,095 -68.1%
UNPACK_SEQUENCE_LIST 2,075,188 680,158 -67.2%
LOAD_ATTR_METHOD_LAZY_DICT 49,565,203 16,272,126 -67.2%
CALL_BUILTIN_O 320,353,821 105,689,496 -67.0%
MAP_ADD 26,549,503 8,933,074 -66.4%
CONTAINS_OP_SET 274,336,366 94,299,090 -65.6%
UNPACK_SEQUENCE_TWO_TUPLE 542,129,112 192,288,685 -64.5%
UNPACK_SEQUENCE 1,214,813 463,757 -61.8%
BINARY_OP_SUBSCR_LIST_INT 572,172,153 219,353,061 -61.7%
BINARY_OP_SUBSCR_STR_INT 279,400,372 107,381,744 -61.6%
CONTAINS_OP 158,452,444 61,901,768 -60.9%
MAKE_CELL 64,813,565 25,438,599 -60.8%
CONTAINS_OP_DICT 171,642,397 69,544,409 -59.5%
BINARY_OP_SUBSCR_GETITEM 165,455,820 68,412,087 -58.7%
BINARY_OP 1,351,083,127 582,071,873 -56.9%
STORE_ATTR_INSTANCE_VALUE 1,076,668,454 470,113,472 -56.3%
LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 194,807,939 88,222,648 -54.7%
COPY 813,045,624 372,060,639 -54.2%
BUILD_SLICE 55,173,575 25,607,715 -53.6%
EXTENDED_ARG 314,729,422 149,620,124 -52.5%
LOAD_ATTR_INSTANCE_VALUE 4,879,198,216 2,326,856,380 -52.3%
POP_JUMP_IF_NONE 319,160,890 153,831,758 -51.8%
STORE_FAST 6,445,645,037 3,136,852,100 -51.3%
STORE_FAST_STORE_FAST 474,334,890 233,298,794 -50.8%
JUMP_FORWARD 343,606,451 169,080,408 -50.8%
BINARY_OP_MULTIPLY_FLOAT 566,651,057 280,331,323 -50.5%
LOAD_NAME 9,738,721 4,862,941 -50.1%
LOAD_ATTR_METHOD_WITH_VALUES 2,160,388,079 1,082,819,793 -49.9%
SWAP 467,639,341 236,112,843 -49.5%
CALL_KW_PY 102,915,241 52,321,365 -49.2%
IS_OP 331,727,692 172,162,072 -48.1%
NOP 1,062,193,345 564,885,671 -46.8%
BINARY_OP_ADD_INT 1,138,258,061 608,561,408 -46.5%
TO_BOOL_LIST 43,852,378 23,474,430 -46.5%
BINARY_OP_SUBTRACT_FLOAT 98,631,029 52,810,199 -46.5%
BINARY_OP_SUBSCR_DICT 495,978,463 266,914,807 -46.2%
CALL_PY_GENERAL 371,559,805 202,824,076 -45.4%
LOAD_FAST_BORROW_LOAD_FAST_BORROW 4,805,967,834 2,628,546,030 -45.3%
CALL_TYPE_1 110,723,948 60,684,174 -45.2%
BINARY_SLICE 201,330,139 110,727,411 -45.0%
LOAD_FAST 601,350,856 333,696,892 -44.5%
CALL_PY_EXACT_ARGS 2,937,162,502 1,630,527,459 -44.5%
LIST_APPEND 106,680,513 60,399,315 -43.4%
STORE_SLICE 1,232,574 700,470 -43.2%
BUILD_TUPLE 659,304,925 375,990,288 -43.0%
TO_BOOL_BOOL 3,441,114,305 1,972,761,042 -42.7%
CALL_BOUND_METHOD_EXACT_ARGS 137,555,096 79,685,524 -42.1%
LOAD_ATTR_CLASS 326,076,973 189,315,120 -41.9%
POP_JUMP_IF_FALSE 5,878,233,483 3,421,606,207 -41.8%
LOAD_FAST_BORROW 24,754,061,638 14,526,411,192 -41.3%
CALL_METHOD_DESCRIPTOR_O 294,469,942 173,243,741 -41.2%
STORE_SUBSCR_DICT 145,103,532 86,172,997 -40.6%
BINARY_OP_MULTIPLY_INT 204,789,272 122,165,592 -40.3%
TO_BOOL_INT 166,356,574 99,906,203 -39.9%
LOAD_DEREF 875,188,307 526,719,635 -39.8%
LOAD_SMALL_INT 2,876,167,485 1,731,895,552 -39.8%
PUSH_NULL 994,029,135 607,235,981 -38.9%
TO_BOOL_ALWAYS_TRUE 131,623,204 80,821,986 -38.6%
COMPARE_OP_INT 1,634,533,262 1,011,543,007 -38.1%
LOAD_GLOBAL_MODULE 3,492,621,426 2,172,477,388 -37.8%
COMPARE_OP 150,014,195 94,875,954 -36.8%
BINARY_OP_SUBTRACT_INT 811,076,536 517,126,003 -36.2%
CALL_METHOD_DESCRIPTOR_FAST 294,213,956 188,208,435 -36.0%
BUILD_MAP 142,717,993 92,312,194 -35.3%
DICT_MERGE 71,757,010 46,992,365 -34.5%
POP_JUMP_IF_TRUE 1,440,129,677 950,065,263 -34.0%
GET_ITER 577,961,397 384,781,704 -33.4%
NOT_TAKEN 141,188,969 94,136,760 -33.3%
RETURN_VALUE 6,124,629,450 4,112,535,721 -32.9%
LOAD_ATTR_METHOD_NO_DICT 1,159,370,695 784,058,287 -32.4%
STORE_DEREF 70,690,423 47,947,777 -32.2%
TO_BOOL_STR 50,573,003 34,433,836 -31.9%
END_FOR 114,997,437 78,549,716 -31.7%
POP_TOP 3,109,550,598 2,127,573,469 -31.6%
COMPARE_OP_STR 485,760,040 334,047,666 -31.2%
FOR_ITER_TUPLE 172,411,400 119,592,701 -30.6%
LOAD_CONST 4,965,616,609 3,444,826,766 -30.6%
RESUME_CHECK 6,574,894,355 4,569,861,241 -30.5%
CALL_BUILTIN_FAST 373,628,804 260,244,123 -30.3%
CALL_LEN 442,902,429 309,132,998 -30.2%
CALL_BUILTIN_CLASS 315,189,478 220,652,894 -30.0%
POP_JUMP_IF_NOT_NONE 525,396,381 368,396,557 -29.9%
LOAD_FAST_CHECK 3,974,049 2,798,811 -29.6%
CALL_BUILTIN_FAST_WITH_KEYWORDS 96,006,319 124,373,731 29.5%
CALL_LIST_APPEND 205,967,469 146,400,430 -28.9%
LOAD_ATTR_NONDESCRIPTOR_NO_DICT 70,070,213 50,241,927 -28.3%
LOAD_GLOBAL_BUILTIN 3,167,792,857 2,273,223,292 -28.2%
LOAD_ATTR 611,397,968 439,646,639 -28.1%
BINARY_OP_SUBSCR_TUPLE_INT 249,354,279 181,534,949 -27.2%
CALL_ISINSTANCE 1,001,864,365 754,069,285 -24.7%
LOAD_SPECIAL 17,502,878 13,208,742 -24.5%
LOAD_ATTR_MODULE 509,446,612 384,922,282 -24.4%
SET_FUNCTION_ATTRIBUTE 54,367,312 67,081,179 23.4%
TO_BOOL 331,904,936 257,302,334 -22.5%
CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 40,585,194 31,862,352 -21.5%
CALL_METHOD_DESCRIPTOR_NOARGS 180,863,719 142,357,278 -21.3%
CALL_KW_NON_PY 41,073,053 32,548,469 -20.8%
CALL_NON_PY_GENERAL 553,334,664 441,751,511 -20.2%
BINARY_OP_SUBSCR_LIST_SLICE 15,587,989 12,536,642 -19.6%
RETURN_GENERATOR 369,301,369 298,294,908 -19.2%
LOAD_FAST_LOAD_FAST 8,560,191 6,995,403 -18.3%
BUILD_LIST 196,697,499 162,725,700 -17.3%
EXIT_INIT_CHECK 323,949,428 268,979,493 -17.0%
CALL_ALLOC_AND_ENTER_INIT 326,002,332 270,856,784 -16.9%
STORE_ATTR 59,731,767 49,743,829 -16.7%
COMPARE_OP_FLOAT 158,660,697 132,787,743 -16.3%
BINARY_OP_ADD_UNICODE 114,562,392 96,316,197 -15.9%
LIST_EXTEND 42,461,499 35,752,991 -15.8%
LOAD_SUPER_ATTR_METHOD 61,108,541 51,565,358 -15.6%
CALL_STR_1 93,053,504 79,753,054 -14.3%
CALL_TUPLE_1 6,269,391 5,393,629 -14.0%
LOAD_ATTR_SLOT 3,023,920,687 2,654,135,749 -12.2%
LOAD_ATTR_PROPERTY 70,937,747 62,284,888 -12.2%
YIELD_VALUE 1,151,193,047 1,024,373,324 -11.0%
LOAD_FAST_AND_CLEAR 46,434,172 41,600,346 -10.4%
STORE_ATTR_SLOT 1,544,930,996 1,406,047,149 -9.0%
TO_BOOL_NONE 367,101,558 338,830,538 -7.7%
IMPORT_NAME 10,389,147 9,620,614 -7.4%
STORE_SUBSCR 122,065,495 113,094,554 -7.3%
JUMP_BACKWARD_NO_INTERRUPT 418,752,741 390,442,352 -6.8%
BINARY_OP_INPLACE_ADD_UNICODE 3,423,912 3,198,277 -6.6%
POP_ITER 630,088,168 669,231,904 6.2%
IMPORT_FROM 12,123,980 11,397,728 -6.0%
UNPACK_EX 235,809 222,353 -5.7%
LOAD_ATTR_WITH_HINT 71,547,633 67,478,459 -5.7%
SEND_GEN 593,230,363 559,677,514 -5.7%
MAKE_FUNCTION 70,255,285 73,708,597 4.9%
GET_YIELD_FROM_ITER 35,435,795 33,750,206 -4.8%
CALL_INTRINSIC_1 143,959,103 137,925,167 -4.2%
CONVERT_VALUE 36,897,410 35,399,842 -4.1%
FORMAT_SIMPLE 43,316,829 41,891,967 -3.3%
BUILD_STRING 22,179,370 21,473,025 -3.2%
GET_AWAITABLE 172,683,388 167,281,630 -3.1%
JUMP_BACKWARD_NO_JIT 6,775,330 6,590,497 -2.7%
END_SEND 302,140,427 294,941,984 -2.4%
COPY_FREE_VARS 297,141,912 290,100,969 -2.4%
INTERPRETER_EXIT 1,890,272,073 1,877,258,578 -0.7%
CALL_KW 11,666 11,728 0.5%
CALL_FUNCTION_EX 219,562,308 218,674,065 -0.4%
LOAD_SUPER_ATTR_ATTR 4,510,099 4,492,301 -0.4%
CALL 222,251 222,781 0.2%
POP_EXCEPT 25,553,813 25,522,892 -0.1%
JUMP_BACKWARD 6,520 6,525 0.1%
RESUME 31,203 31,180 -0.1%
BUILD_SET 437,239 437,368 0.0%
SEND 128,440,667 128,462,069 0.0%
CLEANUP_THROW 91,596 91,588 -0.0%
STORE_ATTR_WITH_HINT 8,975,993 8,975,373 -0.0%
DELETE_ATTR 331,596 331,577 -0.0%
LOAD_GLOBAL 14,736,780 14,737,430 0.0%
LOAD_ATTR_CLASS_WITH_METACLASS_CHECK 9,211,860 9,211,958 0.0%
CHECK_EXC_MATCH 25,211,120 25,210,920 -0.0%
PUSH_EXC_INFO 25,553,815 25,553,615 -0.0%
RAISE_VARARGS 8,594,614 8,594,656 0.0%
RERAISE 6,248,578 6,248,570 -0.0%
INSTRUMENTED_LINE 58,270,440 58,270,440 0.0%
DELETE_FAST 41,964,183 41,964,183 0.0%
INSTRUMENTED_RESUME 29,134,740 29,134,740 0.0%
INSTRUMENTED_RETURN_VALUE 29,134,440 29,134,440 0.0%
GET_AITER 6,000,000 6,000,000 0.0%
GET_ANEXT 6,000,000 6,000,000 0.0%
END_ASYNC_FOR 6,000,000 6,000,000 0.0%
SET_ADD 73,592 73,592 0.0%
SET_UPDATE 68,063 68,063 0.0%
LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 49,580 49,580 0.0%
STORE_NAME 47,906 47,906 0.0%
DICT_UPDATE 14,747 14,747 0.0%
WITH_EXCEPT_START 9,631 9,631 0.0%
LOAD_BUILD_CLASS 3,375 3,375 0.0%
LOAD_LOCALS 3,352 3,352 0.0%
FORMAT_WITH_SPEC 2,740 2,740 0.0%
LOAD_SUPER_ATTR 2,347 2,347 0.0%
LOAD_FROM_DICT_OR_DEREF 1,460 1,460 0.0%
INSTRUMENTED_JUMP_BACKWARD 120 120 0.0%
SETUP_ANNOTATIONS 117 117 0.0%
DELETE_NAME 15 15 0.0%

Pair counts

Pair counts for top 100 opcode pairs

Pairs of specialized operations that deoptimize and are then followed by the corresponding unspecialized instruction are not counted as pairs.

Not included in comparative output.

Predecessor/Successor Pairs

Top 5 predecessors and successors of each Tier 1 opcode.

This does not include the unspecialized instructions that occur after a specialized instruction deoptimizes.

Not included in comparative output.

Specialization stats

Specialization stats by family

BINARY_OP

specialization stats for BINARY_OP family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

1,350,514,188 7.5% 581,712,214 3.4% -56.9%
miss

Specialized instructions that deopt.

61,043,817 0.3% 40,363,149 0.2% -33.9%
hit

Specialized instructions that complete.

16,712,947,143 92.2% 16,580,749,816 96.4% -0.8%
deopt

Specialized instructions that deopt.

1,063 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 552,378 32.1% 343,058 30.6% -37.9%
Success 1,168,031 67.9% 778,392 69.4% -33.4%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
and other 317 0.1% 1,077 0.3% 239.7%
subscr bytes 1,808 0.3% 4,448 1.3% 146.0%
subscr mappingproxy 60 0.0% 140 0.0% 133.3%
subscr 7,090 1.3% 13,798 4.0% 94.6%
true divide float 11,587 2.1% 1,467 0.4% -87.3%
subscr array 36,682 6.6% 6,512 1.9% -82.2%
xor int 16,760 3.0% 3,680 1.1% -78.0%
rshift 11,290 2.0% 2,659 0.8% -76.4%
lshift 15,422 2.8% 4,364 1.3% -71.7%
and int 18,469 3.3% 7,869 2.3% -57.4%
remainder 36,887 6.7% 16,179 4.7% -56.1%
add different types 25,648 4.6% 12,380 3.6% -51.7%
subscr defaultdict 63,494 11.5% 33,789 9.8% -46.8%
out of range 41,347 7.5% 24,648 7.2% -40.4%
subtract other 8,368 1.5% 5,231 1.5% -37.5%
floor divide 30,096 5.4% 19,143 5.6% -36.4%
subscr tuple slice 109,554 19.8% 82,056 23.9% -25.1%
add other 38,233 6.9% 29,273 8.5% -23.4%
multiply other 15,674 2.8% 12,053 3.5% -23.1%
xor 140 0.0% 120 0.0% -14.3%
multiply different types 13,958 2.5% 12,760 3.7% -8.6%
subscr string slice 2,261 0.4% 2,443 0.7% 8.0%
true divide different types 2,114 0.4% 2,002 0.6% -5.3%
or 3,100 0.6% 2,971 0.9% -4.2%
true divide other 1,387 0.3% 1,343 0.4% -3.2%
subtract different types 630 0.1% 648 0.2% 2.9%
subscr range 3,162 0.6% 3,122 0.9% -1.3%
subscr deque 115 0.0% 116 0.0% 0.9%
subscr counter 26,852 4.9% 26,892 7.8% 0.1%
power 9,121 1.7% 9,123 2.7% 0.0%
subscr other slice 311 0.1% 311 0.1% 0.0%
or different types 156 0.0% 156 0.0% 0.0%
subscr structtime 140 0.0% 140 0.0% 0.0%
code complex parameters 60 0.0% 60 0.0% 0.0%
and different types 41 0.0% 41 0.0% 0.0%
subscr ordereddict 23 0.0% 23 0.0% 0.0%
or int 20 0.0% 20 0.0% 0.0%
subscr enumdict 1 0.0% 1 0.0% 0.0%

BINARY_SLICE

specialization stats for BINARY_SLICE family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

201,330,139 100.0% 110,727,411 100.0% -45.0%

CALL

specialization stats for CALL family
Kind Base Count Base Ratio Head Count Head Ratio Change
deopt

Specialized instructions that deopt.

8,000 0.0% 31,501 0.0% 293.8%
miss

Specialized instructions that deopt.

184,570,027 1.4% 139,086,357 1.1% -24.6%
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

181,150,357 1.4% 136,511,523 1.1% -24.6%
hit

Specialized instructions that complete.

12,601,926,233 98.6% 12,505,587,047 98.9% -0.8%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 3,641,774 100.0% 2,797,468 100.0% -23.2%
Failure 147 0.0% 147 0.0% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
init not python 266 181.0% 286 194.6% 7.5%
init not simple 731 497.3% 731 497.3% 0.0%
out of versions 147 100.0% 147 100.0% 0.0%

CALL_KW

specialization stats for CALL_KW family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

537,918 96.6% 537,918 96.6% 0.0%
miss

Specialized instructions that deopt.

545,009 97.9% 545,009 97.9% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 18,757 100.0% 18,819 100.0% 0.3%
Failure 0 0.0% 0 0.0%

COMPARE_OP

specialization stats for COMPARE_OP family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

149,872,904 2.7% 94,748,478 1.8% -36.8%
miss

Specialized instructions that deopt.

1,306,267 0.0% 1,047,201 0.0% -19.8%
hit

Specialized instructions that complete.

5,316,388,628 97.2% 5,273,361,516 98.2% -0.8%
deopt

Specialized instructions that deopt.

60 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 119,669 72.1% 105,883 71.9% -11.5%
Success 46,202 27.9% 41,338 28.1% -10.5%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
bytes 1,398 1.2% 4,018 3.8% 187.4%
float long 14,421 12.1% 6,931 6.5% -51.9%
bool 1,865 1.6% 1,123 1.1% -39.8%
baseobject 6,423 5.4% 7,944 7.5% 23.7%
different types 38,928 32.5% 34,008 32.1% -12.6%
other 10,653 8.9% 9,388 8.9% -11.9%
big int 30,251 25.3% 27,124 25.6% -10.3%
string 9,729 8.1% 9,225 8.7% -5.2%
tuple 4,105 3.4% 4,205 4.0% 2.4%
list 911 0.8% 931 0.9% 2.2%
set 801 0.7% 802 0.8% 0.1%
long float 184 0.2% 184 0.2% 0.0%

CONTAINS_OP

specialization stats for CONTAINS_OP family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

158,391,776 6.7% 61,773,398 2.7% -61.0%
hit

Specialized instructions that complete.

2,191,460,735 93.2% 2,187,469,371 97.2% -0.2%
miss

Specialized instructions that deopt.

1,402,138 0.1% 1,400,826 0.1% -0.1%
deopt

Specialized instructions that deopt.

42 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 58,800 67.5% 126,502 81.7% 115.1%
Success 28,320 32.5% 28,320 18.3% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
str 11,038 18.8% 93,223 73.7% 744.6%
list 28,522 48.5% 12,881 10.2% -54.8%
tuple 10,040 17.1% 12,748 10.1% 27.0%
other 9,200 15.6% 7,650 6.0% -16.8%

FOR_ITER

specialization stats for FOR_ITER family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

310,043,480 16.7% 92,824,526 11.6% -70.1%
miss

Specialized instructions that deopt.

61,944,638 3.3% 23,039,729 2.9% -62.8%
hit

Specialized instructions that complete.

1,489,689,305 80.0% 674,739,520 84.7% -54.7%
deopt

Specialized instructions that deopt.

164,635 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 134,076 10.2% 6,229,820 91.3% 4,546.5%
Success 1,174,404 89.8% 594,574 8.7% -49.4%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
map 251 0.2% 476,371 7.6% 189,689.2%
ascii string 1,177 0.9% 359,727 5.8% 30,463.0%
dict items 51,352 38.3% 4,307,272 69.1% 8,287.7%
list 16,337 12.2% 777,227 12.5% 4,657.5%
seq iter 5,271 3.9% 137,893 2.2% 2,516.1%
itertools 3,473 2.6% 77,993 1.3% 2,145.7%
callable 114 0.1% 1,914 0.0% 1,578.9%
enumerate 16,190 12.1% 59,615 1.0% 268.2%
zip 4,161 3.1% 9,831 0.2% 136.3%
tuple 232 0.2% 545 0.0% 134.9%
dict keys 10,920 8.1% 3,973 0.1% -63.6%
other 4,459 3.3% 2,331 0.0% -47.7%
reversed list 1,730 1.3% 970 0.0% -43.9%
set 12,469 9.3% 7,083 0.1% -43.2%
dict values 5,580 4.2% 6,795 0.1% 21.8%
bytes 320 0.2% 280 0.0% -12.5%
string 40 0.0%

GET_ITER

specialization stats for GET_ITER family
Failure kind Base Count Base Ratio Head Count Head Ratio Change
other 126,471,391 126,471,391 / 0 !! 123,354,153 123,354,153 / 0 !! -2.5%
list 311,635,459 311,635,459 / 0 !! 307,485,933 307,485,933 / 0 !! -1.3%
set 12,082,113 12,082,113 / 0 !! 12,130,252 12,130,252 / 0 !! 0.4%
generator 101,610,581 101,610,581 / 0 !! 101,219,186 101,219,186 / 0 !! -0.4%
self 322,214,921 322,214,921 / 0 !! 322,026,255 322,026,255 / 0 !! -0.1%
enumerate 5,390,703 5,390,703 / 0 !! 5,388,867 5,388,867 / 0 !! -0.0%
tuple 172,650,014 172,650,014 / 0 !! 172,617,263 172,617,263 / 0 !! -0.0%
dict keys 34,819,624 34,819,624 / 0 !! 34,819,578 34,819,578 / 0 !! -0.0%
string 2,768,970 2,768,970 / 0 !! 2,768,970 2,768,970 / 0 !! 0.0%
bytes 775,440 775,440 / 0 !! 775,440 775,440 / 0 !! 0.0%

LOAD_ATTR

specialization stats for LOAD_ATTR family
Kind Base Count Base Ratio Head Count Head Ratio Change
deopt

Specialized instructions that deopt.

1,422,762 0.0% 2,148,746 0.0% 51.0%
miss

Specialized instructions that deopt.

785,153,136 5.0% 434,399,258 3.1% -44.7%
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

609,708,003 3.9% 437,699,943 3.1% -28.2%
hit

Specialized instructions that complete.

14,323,879,124 91.1% 13,231,597,477 93.8% -7.6%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 464,761 3.0% 1,477,137 14.5% 217.8%
Success 14,886,557 97.0% 8,738,628 85.5% -41.3%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
not managed dict 1,869 0.4% 257,686 17.4% 13,687.4%
module attr not found 22,388 4.8% 532,954 36.1% 2,280.5%
method 44,316 9.5% 378,929 25.7% 755.1%
class attr simple 823 0.2% 4,601 0.3% 459.1%
not in dict 603 0.1% 1,232 0.1% 104.3%
mutable class 47,781 10.3% 74,822 5.1% 56.6%
metaclass attribute 22,240 4.8% 30,207 2.0% 35.8%
overridden 7,713 1.7% 10,396 0.7% 34.8%
class method obj 17,058 3.7% 13,119 0.9% -23.1%
overriding descriptor 45,077 9.7% 37,034 2.5% -17.8%
out of versions 400 0.1% 380 0.0% -5.0%
builtin class method 718 0.2% 742 0.1% 3.3%
non overriding descriptor 4,864 1.0% 4,944 0.3% 1.6%
expected error 2,373 0.5% 2,397 0.2% 1.0%
non object slot 1,139 0.2% 1,139 0.1% 0.0%
wrong number arguments 200 0.0% 200 0.0% 0.0%
property 46 0.0% 46 0.0% 0.0%

LOAD_GLOBAL

specialization stats for LOAD_GLOBAL family
Kind Base Count Base Ratio Head Count Head Ratio Change
hit

Specialized instructions that complete.

6,705,944,105 99.8% 5,622,293,170 99.7% -16.2%
miss

Specialized instructions that deopt.

41,979 0.0% 41,954 0.0% -0.1%
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

14,612,709 0.2% 14,612,686 0.3% -0.0%
deopt

Specialized instructions that deopt.

11 0.0% 11 0.0% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 124,775 100.0% 125,450 100.0% 0.5%
Failure 0 0.0% 0 0.0%

LOAD_SUPER_ATTR

specialization stats for LOAD_SUPER_ATTR family
Kind Base Count Base Ratio Head Count Head Ratio Change
hit

Specialized instructions that complete.

65,622,625 100.0% 65,707,027 100.0% 0.1%
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

122 0.0% 122 0.0% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 2,225 100.0% 2,225 100.0% 0.0%
Failure 0 0.0% 0 0.0%

SEND

specialization stats for SEND family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

128,406,370 17.8% 128,405,906 17.8% -0.0%
hit

Specialized instructions that complete.

593,215,652 82.2% 593,215,681 82.2% 0.0%
miss

Specialized instructions that deopt.

14,711 0.0% 14,711 0.0% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 33,953 98.2% 55,819 98.9% 64.4%
Success 616 1.8% 616 1.1% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
async generator send 24,440 72.0% 45,960 82.3% 88.1%
other 5,948 17.5% 6,295 11.3% 5.8%
tuple 640 1.9% 660 1.2% 3.1%
list 2,925 8.6% 2,904 5.2% -0.7%

STORE_ATTR

specialization stats for STORE_ATTR family
Kind Base Count Base Ratio Head Count Head Ratio Change
miss

Specialized instructions that deopt.

113,414,470 4.1% 74,653,329 2.7% -34.2%
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

59,648,811 2.1% 49,476,358 1.8% -17.1%
hit

Specialized instructions that complete.

2,604,404,729 93.8% 2,600,162,167 95.4% -0.2%
deopt

Specialized instructions that deopt.

15,365 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 43,984 2.0% 228,157 13.5% 418.7%
Success 2,178,571 98.0% 1,455,734 86.5% -33.2%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
class attr simple 20,345 46.3% 205,593 90.1% 910.5%
other 236,191 537.0% 117,928 51.7% -50.1%
split dict 3,719 8.5% 2,259 1.0% -39.3%
property 1,729 3.9% 2,326 1.0% 34.5%
non object slot 94 0.2% 115 0.1% 22.3%
not in keys 749 1.7% 829 0.4% 10.7%
method 421 1.0% 377 0.2% -10.5%
overriding descriptor 4,889 11.1% 4,712 2.1% -3.6%
not in dict 7,206 16.4% 7,106 3.1% -1.4%
not managed dict 2,988 6.8% 2,994 1.3% 0.2%
overridden 313 0.7% 313 0.1% 0.0%
no dict 101 0.2% 101 0.0% 0.0%
mutable class 89 0.2% 89 0.0% 0.0%

STORE_SLICE

specialization stats for STORE_SLICE family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

1,232,574 100.0% 700,470 100.0% -43.2%

STORE_SUBSCR

specialization stats for STORE_SUBSCR family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

122,021,769 11.4% 113,050,608 10.7% -7.4%
hit

Specialized instructions that complete.

949,073,122 88.6% 946,980,192 89.3% -0.2%
miss

Specialized instructions that deopt.

2,220 0.0% 2,220 0.0% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 40,810 93.2% 41,028 93.3% 0.5%
Success 2,956 6.8% 2,958 6.7% 0.1%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
dict subclass no override 3,923 9.6% 14,269 34.8% 263.7%
bytearray int 136 0.3% 240 0.6% 76.5%
out of range 1,673 4.1% 493 1.2% -70.5%
array int 14,377 35.2% 8,238 20.1% -42.7%
list slice 2,976 7.3% 2,276 5.5% -23.5%
py simple 17,329 42.5% 15,076 36.7% -13.0%
other 328 0.8% 368 0.9% 12.2%
array slice 68 0.2% 68 0.2% 0.0%

TO_BOOL

specialization stats for TO_BOOL family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

331,280,679 5.8% 256,765,889 4.9% -22.5%
miss

Specialized instructions that deopt.

66,398,834 1.2% 57,396,688 1.1% -13.6%
hit

Specialized instructions that complete.

5,299,259,668 93.0% 4,892,273,638 94.0% -7.7%
deopt

Specialized instructions that deopt.

6,995 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 574,934 30.7% 486,988 30.0% -15.3%
Success 1,300,710 69.3% 1,135,515 70.0% -12.7%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
tuple 76,245 13.3% 152,965 31.4% 100.6%
float 382 0.1% 22 0.0% -94.2%
other 84,213 14.6% 4,875 1.0% -94.2%
mapping 71,861 12.5% 7,089 1.5% -90.1%
sequence 9,524 1.7% 5,480 1.1% -42.5%
bytes 2,621 0.5% 1,521 0.3% -42.0%
dict 11,532 2.0% 7,609 1.6% -34.0%
number 308,986 53.7% 298,121 61.2% -3.5%
set 9,483 1.6% 9,219 1.9% -2.8%
memory view 87 0.0% 87 0.0% 0.0%

UNPACK_SEQUENCE

specialization stats for UNPACK_SEQUENCE family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

1,204,378 0.1% 453,232 0.0% -62.4%
miss

Specialized instructions that deopt.

3,700 0.0% 3,220 0.0% -13.0%
hit

Specialized instructions that complete.

1,270,926,067 99.9% 1,256,517,986 100.0% -1.1%
deopt

Specialized instructions that deopt.

20 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 736 7.0% 766 7.2% 4.1%
Success 9,779 93.0% 9,839 92.8% 0.6%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
other 99 13.5% 120 15.7% 21.2%
sequence 505 68.6% 514 67.1% 1.8%
iterator 132 17.9% 132 17.2% 0.0%

Specialization effectiveness

specialization effectiveness

All entries are execution counts. Should add up to the total number of Tier 1 instructions executed.

Instructions Base Count Base Ratio Head Count Head Ratio Change
Not specialized

Instructions that could be specialized but aren't, e.g. LOAD_ATTR, BINARY_SLICE.

4,019,985,923 3.0% 2,337,806,743 2.8% -41.8%
Specialized misses

Specialized instructions, e.g. LOAD_ATTR_MODULE that deopt.

1,276,002,561 1.0% 772,140,308 0.9% -39.5%
Specialized hits

Specialized instructions, e.g. LOAD_ATTR_MODULE that complete.

52,002,222,396 38.7% 31,517,458,251 37.7% -39.4%
Basic

Instructions that are not and cannot be specialized, e.g. LOAD_FAST.

76,952,971,057 57.3% 48,988,273,210 58.6% -36.3%

Deferred by instruction

Breakdown of deferred (not specialized) instruction counts by family
Name Base Count Base Ratio Head Count Head Ratio Change
FOR_ITER 310,043,480 8.6% 92,824,526 4.5% -70.1%
CONTAINS_OP 158,391,776 4.4% 61,773,398 3.0% -61.0%
BINARY_OP 1,350,514,188 37.3% 581,712,214 28.0% -56.9%
BINARY_SLICE 201,330,139 5.6% 110,727,411 5.3% -45.0%
COMPARE_OP 149,872,904 4.1% 94,748,478 4.6% -36.8%
LOAD_ATTR 609,708,003 16.8% 437,699,943 21.0% -28.2%
CALL 181,150,357 5.0% 136,511,523 6.6% -24.6%
TO_BOOL 331,280,679 9.2% 256,765,889 12.3% -22.5%
STORE_SUBSCR 122,021,769 3.4% 113,050,608 5.4% -7.4%
SEND 128,406,370 3.5% 128,405,906 6.2% -0.0%

Misses by instruction

Breakdown of misses (specialized deopts) instruction counts by family
Name Base Count Base Ratio Head Count Head Ratio Change
LOAD_ATTR_METHOD_WITH_VALUES 248,651,374 19.5% 109,188,091 14.1% -56.1%
LOAD_ATTR_INSTANCE_VALUE 326,266,651 25.6% 150,668,071 19.5% -53.8%
STORE_ATTR_INSTANCE_VALUE 93,618,063 7.3% 54,868,965 7.1% -41.4%
CALL_PY_EXACT_ARGS 78,477,963 6.1% 51,243,012 6.6% -34.7%
LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 75,511,415 5.9% 54,278,537 7.0% -28.1%
TO_BOOL_NONE 32,152,900 2.5% 28,067,251 3.6% -12.7%
TO_BOOL_ALWAYS_TRUE 27,564,123 2.2% 24,978,579 3.2% -9.4%
LOAD_ATTR_SLOT 80,511,235 6.3% 73,535,405 9.5% -8.7%
FOR_ITER_LIST 30,933,616 2.4%
FOR_ITER_TUPLE 30,884,246 2.4%
CALL_METHOD_DESCRIPTOR_O 24,854,440 3.2%
CALL_METHOD_DESCRIPTOR_NOARGS 20,872,266 2.7%

Call stats

Inlined calls and frame stats

This shows what fraction of calls to Python functions are inlined (i.e. not having a call at the C level) and for those that are not, where the call comes from. The various categories overlap.

Also includes the count of frame objects created.

Base Count Base Ratio Head Count Head Ratio Change
Calls via PyEval_EvalFrame (legacy) 4,273,296 0.1% 2,128,101 0.0% -50.2%
Calls to Python functions inlined 6,026,118,478 76.1% 5,857,009,009 75.7% -2.8%
Frame objects created 78,007,742 1.0% 76,010,562 1.0% -2.6%
Frames pushed 6,692,028,625 84.5% 6,551,009,852 84.7% -2.1%
Calls via PyEval_EvalFrame (generator) 613,945,254 7.8% 605,363,982 7.8% -1.4%
Calls to PyEval_EvalDefault 1,894,748,115 23.9% 1,881,734,603 24.3% -0.7%
Calls via PyEval_EvalFrame (total) 1,894,748,115 23.9% 1,881,734,603 24.3% -0.7%
Calls via PyEval_EvalFrame (vector) 1,280,802,861 16.2% 1,276,370,621 16.5% -0.3%
Calls via PyEval_EvalFrame (method) 141,112,765 1.8% 140,848,809 1.8% -0.2%
Calls via PyEval_EvalFrame (function vectorcall) 1,276,526,190 16.1% 1,274,239,145 16.5% -0.2%
Calls via PyEval_EvalFrame (api) 458,246,253 5.8% 457,714,320 5.9% -0.1%
Calls via PyEval_EvalFrame (slot) 305,854,240 3.9% 305,854,903 4.0% 0.0%
Calls via PyEval_EvalFrame (function ex) 24,439,833 0.3% 24,439,836 0.3% 0.0%
Calls via PyEval_EvalFrame (build class) 3,375 0.0% 3,375 0.0% 0.0%

Object stats

Allocations, frees and dict materializatons

Below, "allocations" means "allocations that are not from a freelist". Total allocations = "Allocations from freelist" + "Allocations".

"Inline values" is the number of values arrays inlined into objects.

The cache hit/miss numbers are for the MRO cache, split into dunder and other names.

Base Count Base Ratio Head Count Head Ratio Change
Interpreter mortal increfs 30,315,962,253 31.1% 20,556,828,118 21.4% -32.2%
Interpreter immortal decrefs 1,475,369,771 1.3% 1,105,155,383 1.0% -25.1%
Mortal increfs 38,021,167,062 39.0% 46,714,294,527 48.7% 22.9%
Interpreter mortal decrefs 39,305,994,934 35.1% 32,352,037,633 29.3% -17.7%
Interpreter immortal increfs 4,016,235,923 4.1% 3,314,885,353 3.5% -17.5%
Materialize dict (on request) 4,056,483 2.1% 3,390,883 1.8% -16.4%
Method cache hits 2,300,074,768 1,953,964,265 -15.0%
Mortal decrefs 47,355,402,945 42.2% 53,040,103,941 48.0% 12.0%
Method cache dunder misses 6,230,532 6,512,580 4.5%
Frees to freelist 13,845,791,930 13,662,123,949 -1.3%
Allocations from freelist 13,845,600,010 70.3% 13,661,942,791 70.1% -1.3%
Allocations to 512 bytes 5,782,068,426 29.3% 5,753,872,573 29.5% -0.5%
Frees 6,452,176,760 6,420,993,544 -0.5%
Allocations 5,860,221,974 29.7% 5,832,103,099 29.9% -0.5%
Method cache dunder hits 2,889,855,749 2,876,138,324 -0.5%
Method cache collisions 61,630,374 61,909,328 0.5%
Immortal increfs 25,222,819,420 25.8% 25,332,446,786 26.4% 0.4%
Allocations over 4 kbytes 6,775,536 0.0% 6,799,209 0.0% 0.3%
Inline values 190,517,854 189,911,190 -0.3%
Immortal decrefs 23,949,575,720 21.4% 23,893,691,504 21.6% -0.2%
Method cache misses 56,202,928 56,140,672 -0.1%
Allocations to 4 kbytes 71,378,012 0.4% 71,431,317 0.4% 0.1%
Materialize dict (new key) 264,809 0.1% 264,809 0.1% 0.0%
Materialize dict (too big) 4,404 0.0% 4,404 0.0% 0.0%
Materialize dict (str subclass) 0 0.0% 0 0.0%

GC stats

GC collections and effectiveness

Collected/visits gives some measure of efficiency.

Generation Base Collections Base Objects collected Base Object visits Base Reachable from roots Base Not reachable from roots Head Collections Head Objects collected Head Object visits Head Reachable from roots Head Not reachable from roots
0 0 0 0 0 0 0 0 0 0 0
1 358,124 98,775,759 9,544,198,110 776,465,701 747,993,672 357,669 98,916,343 9,562,006,244 775,398,725 748,357,383
2 15,998 8,734,250 11,440,437,150 0 0 15,998 8,734,250 11,441,288,766 0 0

Optimization (Tier 2) stats

statistics about the Tier 2 optimizer
Base Count Base Ratio Head Count Head Ratio Change
Optimization attempts

The number of times a potential trace is identified. Specifically, this occurs in the JUMP BACKWARD instruction when the counter reaches a threshold.

502,367 24,299,847 4,737.1%
Trace too long

A trace is truncated because it is longer than the instruction buffer.

60 0.0% 1,576 0.0% 2,526.7%
Inner loop found

A trace is truncated because it has an inner loop

693 0.1% 7,352 0.0% 960.9%
Traces created

The number of traces that were successfully created.

23,056 4.6% 94,022 0.4% 307.8%
Executors invalidated

The number of executors that were invalidated due to watched dictionary changes.

240 1.0% 525 0.6% 118.8%
Trace stack overflow

A trace is truncated because it would require more than 5 stack frames.

62 0.0% 0 0.0% -100.0%
Trace stack underflow

A potential trace is abandoned because it pops more frames than it pushes.

217,689 43.3% 0 0.0% -100.0%
Trace too short

A potential trace is abandoned because it is too short.

47,608 9.5% 0 0.0% -100.0%
Recursive call

A trace is truncated because it has a recursive call.

747 0.1% 0 0.0% -100.0%
Low confidence

A trace is abandoned because the likelihood of the jump to top being taken is too low.

624 0.1% 0 0.0% -100.0%
Unknown callee

A trace is abandoned because the target of a call is unknown.

213,952 42.6% 0 0.0% -100.0%
Uops executed

The total number of uops (micro-operations) that were executed

231,341,483,183 5,313.7% 355,925,954,195 6,050.3% 53.9%
Traces executed

The number of traces that were executed

4,353,705,071 5,882,818,893 35.1%
Base Count Base Ratio Head Count Head Ratio Change
Optimizer successes

The number of traces that were successfully optimized.

19,756 85.7% 92,755 98.7% 369.5%
Optimizer attempts

The number of times the trace optimizer (_Py_uop_analyze_and_optimize) was run.

23,056 94,022 307.8%
Optimizer no memory

The number of optimizations that failed due to no memory.

0 0.0% 0 0.0%
Remove globals builtins changed

The builtins changed during optimization

0 0.0% 0 0.0%
Remove globals incorrect keys

The keys in the globals dictionary aren't what was expected

0 0.0% 0 0.0%

JIT memory stats

JIT memory stats
Base Size (bytes) Base Ratio Head Size (bytes) Head Ratio Change
Freed memory size

The size of the memory freed from the JIT traces

815,104 0.5% 133,275,648 10.3% 16,250.8%
Code size

The size of the memory allocated for the code of the JIT traces

133,304,726 75.3% 1,086,482,281 83.7% 715.0%
Total memory size

The total size of the memory allocated for the JIT traces

177,147,904 1,298,219,008 632.8%
Data size

The size of the memory allocated for the data of the JIT traces

3,216,592 1.8% 21,008,720 1.6% 553.1%
Padding size

The size of the memory allocated for the padding of the JIT traces

40,606,750 22.9% 190,635,210 14.7% 369.5%
Trampoline size

The size of the memory allocated for the trampolines of the JIT traces

0 0.0% 0 0.0%

JIT trace total memory histogram

JIT trace total memory histogram
Size (bytes) Base Count Base Ratio Head Count Head Ratio Change
<= 4,096 8,185 41.3% 29,840 32.2% 264.6%
<= 8,192 6,949 35.0% 24,462 26.4% 252.0%
<= 16,384 3,026 15.3% 19,843 21.4% 555.8%
<= 32,768 1,376 6.9% 11,636 12.5% 745.6%
<= 65,536 300 1.5% 5,267 5.7% 1,655.7%
<= 131,072 1,749 1.9%

Trace length histogram

trace length histogram
Range Base Count Base Ratio Head Count Head Ratio Change
<= 8 1,053 4.6%
<= 16 814 3.5%
<= 32 3,582 15.5%
<= 64 7,647 33.2%
<= 128 4,419 19.2%
<= 256 4,212 18.3%
<= 512 1,201 5.2%
<= 1,024 128 0.6%

Optimized trace length histogram

optimized trace length histogram
Range Base Count Base Ratio Head Count Head Ratio Change
<= 4 673 2.9% 20 0.0% -97.0%
<= 8 526 2.3% 788 0.8% 49.8%
<= 16 1,988 8.6% 12,944 13.8% 551.1%
<= 32 7,051 30.6% 23,914 25.4% 239.2%
<= 64 6,044 26.2% 23,784 25.3% 293.5%
<= 128 1,858 8.1% 14,784 15.7% 695.7%
<= 256 1,385 6.0% 11,432 12.2% 725.4%
<= 512 231 1.0% 3,693 3.9% 1,498.7%
<= 1,024 1,396 1.5%

Trace run length histogram

trace run length histogram

Uop execution stats

uop execution stats
Name Base Count Head Count Change
_LOAD_SUPER_ATTR_METHOD 3,985 9,631,497 241,593.8%
_DELETE_SUBSCR 54,160 105,354,936 194,425.4%
_LOAD_SMALL_INT_1 269,900 200,344,723 74,129.2%
_LOAD_SMALL_INT_0 352,940 161,216,213 45,578.1%
_GUARD_CALLABLE_ISINSTANCE 449,298 192,669,954 42,782.4%
_GUARD_THIRD_NULL 449,298 192,669,954 42,782.4%
_GUARD_NOS_NULL 270,020 101,270,628 37,404.9%
_ERROR_POP_N 263 95,149 36,078.3%
_MAKE_CELL 160,148 39,534,581 24,586.3%
_UNARY_NOT 212,260 48,642,286 22,816.4%
_LOAD_ATTR_MODULE 471,948 65,182,589 13,711.4%
_UNARY_NEGATIVE 954,726 97,093,675 10,069.8%
_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 363,240 35,182,347 9,585.7%
_GUARD_CALLABLE_LEN 1,120,240 84,370,266 7,431.4%
_INIT_CALL_PY_EXACT_ARGS_2 5,364,242 305,719,012 5,599.2%
_UNARY_INVERT 163,738 8,170,837 4,890.2%
_POP_TOP_LOAD_CONST_INLINE_BORROW 2,477,668 98,801,997 3,887.7%
_PUSH_NULL_CONDITIONAL 56,140,165 2,129,971,387 3,694.0%
_CALL_TUPLE_1 26,932 902,814 3,252.2%
_LOAD_CONST 23,245,502 699,039,344 2,907.2%
_LOAD_GLOBAL_MODULE 21,901,065 646,539,466 2,852.1%
_IMPORT_NAME 27,762 811,765 2,824.0%
_LOAD_GLOBAL_BUILTINS 23,670,736 530,094,978 2,139.5%
_GUARD_DORV_NO_DICT 28,058,849 591,609,608 2,008.5%
_STORE_ATTR_INSTANCE_VALUE 28,058,849 591,609,608 2,008.5%
_GUARD_TYPE_VERSION_AND_LOCK 29,686,209 592,866,952 1,897.1%
_CHECK_PEP_523 46,427,104 598,366,462 1,188.8%
_LOAD_ATTR_METHOD_WITH_VALUES 23,189,260 276,418,912 1,092.0%
_STORE_DEREF 2,834,024 25,576,556 802.5%
_LOAD_FAST_4 2,522,739 16,750,690 564.0%
_BUILD_MAP 8,093,835 53,176,495 557.0%
_COPY_1 56,148,891 359,351,062 540.0%
_LOAD_ATTR_CLASS 3,106,080 17,101,650 450.6%
_HANDLE_PENDING_AND_DEOPT 9,548 49,850 422.1%
_PY_FRAME_KW 12,237,291 63,541,912 419.2%
_CHECK_FUNCTION_VERSION_KW 12,237,291 62,777,901 413.0%
_DICT_MERGE 5,884,815 29,787,782 406.2%
_RETURN_VALUE 508,019,574 2,379,055,890 368.3%
_INIT_CALL_PY_EXACT_ARGS 6,137,792 27,598,058 349.6%
_GUARD_IS_NOT_NONE_POP 51,809,561 232,139,205 348.1%
_LOAD_FAST_2 21,198,257 90,125,843 325.2%
_GUARD_TOS_UNICODE 42,172,928 176,776,532 319.2%
_BINARY_OP_EXTEND 52,687,141 220,219,198 318.0%
_CHECK_FUNCTION_EXACT_ARGS 161,035,011 654,582,932 306.5%
_GUARD_BINARY_OP_EXTEND 62,227,141 246,184,018 295.6%
_CHECK_FUNCTION_VERSION 214,345,287 836,977,169 290.5%
_STORE_FAST_2 237,253,742 924,614,617 289.7%
_CHECK_STACK_SPACE 111,036,577 427,195,351 284.7%
_INIT_CALL_PY_EXACT_ARGS_0 136,472,141 522,750,931 283.0%
_PY_FRAME_GENERAL 45,540,800 174,045,233 282.2%
_LOAD_ATTR_WITH_HINT 1,323,217 4,944,047 273.6%
_BINARY_OP_MULTIPLY_FLOAT 82,564,084 296,696,358 259.4%
_CHECK_MANAGED_OBJECT_HAS_VALUES 920,227,297 3,287,458,673 257.2%
_LOAD_ATTR_INSTANCE_VALUE 920,184,857 3,286,760,280 257.2%
_STORE_ATTR_SLOT 59,184,907 198,069,274 234.7%
_STORE_ATTR 5,031,398 16,680,483 231.5%
_INIT_CALL_PY_EXACT_ARGS_1 217,964,985 688,077,785 215.7%
_DEOPT 9,888,557 30,633,770 209.8%
_UNPACK_SEQUENCE 364,500 1,115,742 206.1%
_INIT_CALL_PY_EXACT_ARGS_3 45,499,670 138,912,114 205.3%
_POP_TOP_NOP 118,787,328 359,083,896 202.3%
_CALL_BUILTIN_CLASS 40,807,623 122,131,787 199.3%
_PUSH_FRAME 967,662,494 2,881,160,699 197.7%
_GUARD_IS_NONE_POP 64,250,594 184,529,527 187.2%
_LOAD_FAST_0 26,137,232 73,693,385 181.9%
_BINARY_OP_ADD_UNICODE 10,088,679 27,484,042 172.4%
_STORE_FAST_3 337,632,045 887,736,480 162.9%
_SAVE_RETURN_OFFSET 967,662,494 2,428,945,488 151.0%
_CALL_METHOD_DESCRIPTOR_O 77,261,102 193,451,849 150.4%
_CHECK_RECURSION_REMAINING 967,662,494 2,420,610,150 150.2%
_RETURN_GENERATOR 47,734,139 118,582,412 148.4%
_TIER2_RESUME_CHECK 2,397,440,899 5,857,555,478 144.3%
_GUARD_TOS_TUPLE 345,586,121 840,446,524 143.2%
_CONTAINS_OP 69,094,889 164,736,462 138.4%
_CALL_ISINSTANCE 174,383,886 413,728,007 137.3%
_GUARD_KEYS_VERSION 750,237,687 1,748,856,354 133.1%
_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT 750,380,347 1,749,162,753 133.1%
_UNPACK_SEQUENCE_TWO_TUPLE 263,469,479 612,762,614 132.6%
_CHECK_CALL_BOUND_METHOD_EXACT_ARGS 52,932,020 120,877,432 128.4%
_INIT_CALL_BOUND_METHOD_EXACT_ARGS 52,932,020 120,876,832 128.4%
_LOAD_FAST_1 90,677,910 201,807,865 122.6%
_LOAD_FAST_BORROW_0 3,265,354,636 7,251,242,185 122.1%
_POP_TOP 611,996,504 1,354,243,369 121.3%
_TO_BOOL_BOOL 900,380,128 1,967,653,751 118.5%
_GUARD_NOS_TUPLE 35,941,400 77,317,959 115.1%
_GUARD_TOS_FLOAT 298,345,881 637,794,888 113.8%
_BINARY_OP_SUBSCR_TUPLE_INT 42,078,620 88,300,578 109.8%
_CHECK_FUNCTION_VERSION_INLINE 775,374,192 1,619,158,143 108.8%
_CHECK_STACK_SPACE_OPERAND 450,781,074 928,691,232 106.0%
_GUARD_TYPE_VERSION 2,665,095,883 5,458,609,384 104.8%
_EXPAND_METHOD 5,976,000 11,812,160 97.7%
_LOAD_FAST_BORROW_2 1,748,431,000 3,325,714,778 90.2%
_BINARY_OP_MULTIPLY_INT 94,628,877 179,322,366 89.5%
_LOAD_ATTR_SLOT 429,239,042 789,249,405 83.9%
_CHECK_METHOD_VERSION 5,976,000 10,929,500 82.9%
_LOAD_FAST_BORROW_1 3,745,873,640 6,841,187,047 82.6%
_LOAD_CONST_UNDER_INLINE 1,079,652,386 1,892,717,818 75.3%
_CHECK_ATTR_METHOD_LAZY_DICT 44,368,140 76,332,516 72.0%
_LOAD_ATTR 304,711,809 523,891,126 71.9%
_GUARD_TOS_OVERFLOWED 144,983,587 248,861,149 71.6%
_LOAD_DEREF 488,643,802 837,252,573 71.3%
_BINARY_OP 1,074,713,527 1,807,095,638 68.1%
_CALL_METHOD_DESCRIPTOR_FAST 146,225,820 245,422,402 67.8%
_CALL_BUILTIN_FAST_WITH_KEYWORDS 50,628,850 16,790,385 -66.8%
_STORE_FAST_1 1,046,039,705 1,697,823,550 62.3%
_CHECK_ATTR_CLASS 213,637,320 344,795,136 61.4%
_GUARD_TOS_INT 1,781,318,394 2,870,330,054 61.1%
_UNPACK_SEQUENCE_TUPLE 237,193,280 364,481,094 53.7%
_CHECK_VALIDITY 33,528,158,745 51,026,563,994 52.2%
_STORE_FAST_6 404,658,256 615,550,643 52.1%
_SET_IP 38,093,474,674 57,748,460,399 51.6%
_GUARD_NOS_FLOAT 667,851,901 1,011,687,211 51.5%
_COMPARE_OP_FLOAT 37,039,760 55,746,907 50.5%
_LOAD_FAST_5 3,445,911 5,131,094 48.9%
_BINARY_OP_ADD_FLOAT 305,788,274 454,465,101 48.6%
_GUARD_NOS_INT 1,972,489,249 2,926,409,065 48.4%
_LOAD_FAST_BORROW_6 802,108,679 1,188,105,169 48.1%
_GUARD_GLOBALS_VERSION 2,191,253,508 3,224,968,699 47.2%
_BUILD_TUPLE 569,140,269 836,729,330 47.0%
_COLD_EXIT 733,956,790 1,074,189,749 46.4%
_GUARD_NOT_EXHAUSTED_RANGE 427,723,907 623,453,724 45.8%
_ITER_CHECK_RANGE 427,723,907 623,453,724 45.8%
_ITER_NEXT_RANGE 406,690,156 587,686,013 44.5%
_GUARD_NOS_DICT 403,392,661 579,333,123 43.6%
_MAP_ADD 40,824,726 58,441,513 43.2%
_CALL_KW_NON_PY 19,731,666 28,234,161 43.1%
_CHECK_IS_NOT_PY_CALLABLE_KW 19,731,666 28,234,161 43.1%
_IS_OP 252,648,121 360,088,943 42.5%
_GUARD_IS_TRUE_POP 2,652,727,191 3,757,999,484 41.7%
_TO_BOOL_INT 154,370,328 218,587,021 41.6%
_LOAD_FAST_BORROW_3 2,602,101,201 3,678,429,381 41.4%
_GUARD_NOT_EXHAUSTED_LIST 1,367,799,599 1,918,526,788 40.3%
_GUARD_TOS_DICT 248,909,661 347,704,013 39.7%
_TO_BOOL_STR 37,123,103 51,574,057 38.9%
_CONTAINS_OP_DICT 267,807,753 367,344,376 37.2%
_ITER_NEXT_LIST_TIER_TWO 1,239,566,240 1,699,845,743 37.1%
_GET_ITER 512,457,819 697,804,193 36.2%
_CALL_BUILTIN_O 573,328,659 779,574,530 36.0%
_COMPARE_OP_INT 1,656,392,397 2,246,158,419 35.6%
_ITER_CHECK_TUPLE 346,469,879 468,266,049 35.2%
_GUARD_IS_FALSE_POP 4,239,335,403 5,666,072,666 33.7%
_TO_BOOL 140,122,676 186,853,813 33.4%
_START_EXECUTOR 3,619,748,281 4,808,629,144 32.8%
_CHECK_PERIODIC 4,484,333,852 5,880,228,584 31.1%
_TO_BOOL_LIST 45,444,857 59,315,578 30.5%
_STORE_FAST_4 1,016,575,069 1,316,904,351 29.5%
_LIST_APPEND 156,757,059 202,991,417 29.5%
_BUILD_SLICE 103,178,700 132,744,560 28.7%
_ITER_CHECK_LIST 1,495,951,197 1,921,924,676 28.5%
_ITER_NEXT_TUPLE 233,408,249 299,571,595 28.3%
_STORE_FAST_0 142,238,307 182,531,754 28.3%
_BINARY_OP_SUBSCR_DICT 657,588,816 840,496,166 27.8%
_SET_FUNCTION_ATTRIBUTE 46,444,694 33,768,434 -27.3%
_BINARY_SLICE 340,710,360 428,650,420 25.8%
_STORE_FAST_5 799,901,312 1,001,407,174 25.2%
_LOAD_FAST_BORROW 7,718,377,029 9,658,990,401 25.1%
_CALL_NON_PY_GENERAL 409,400,187 512,310,817 25.1%
_PUSH_NULL 3,705,303,886 4,632,196,862 25.0%
_CHECK_IS_NOT_PY_CALLABLE 410,260,767 512,634,925 25.0%
_GUARD_NOS_UNICODE 982,829,517 1,227,575,828 24.9%
_LOAD_FAST 182,151,312 226,941,237 24.6%
_MAKE_WARM 5,988,562,462 7,456,788,729 24.5%
_STORE_SUBSCR_DICT 234,655,433 291,493,219 24.2%
_LOAD_FAST_AND_CLEAR 19,954,728 24,785,248 24.2%
_BINARY_OP_SUBTRACT_INT 1,123,240,005 1,391,654,493 23.9%
_POP_TOP_LOAD_CONST_INLINE 265,835,176 328,943,068 23.7%
_CALL_METHOD_DESCRIPTOR_NOARGS 155,495,534 191,903,541 23.4%
_LOAD_CONST_INLINE 2,832,406,093 3,475,336,631 22.7%
_BINARY_OP_ADD_INT 2,303,434,901 2,822,595,570 22.5%
_SWAP_2 899,831,056 1,098,573,250 22.1%
_STORE_FAST 3,866,115,190 4,717,533,595 22.0%
_GUARD_NOT_EXHAUSTED_TUPLE 345,775,945 416,958,209 20.6%
_LOAD_FAST_6 26,715,013 31,921,257 19.5%
_LOAD_ATTR_METHOD_NO_DICT 1,206,680,466 1,438,625,951 19.2%
_EXIT_TRACE 3,609,849,907 4,284,552,958 18.7%
_GUARD_NOS_LIST 2,345,782,880 2,771,322,125 18.1%
_BINARY_OP_SUBTRACT_FLOAT 182,690,748 215,524,794 18.0%
_BINARY_OP_SUBSCR_STR_INT 976,111,797 1,148,206,295 17.6%
_CALL_TYPE_1 263,274,974 309,608,190 17.6%
_BINARY_OP_SUBSCR_LIST_INT 2,141,356,686 2,494,109,681 16.5%
_FOR_ITER_TIER_TWO 1,212,714,853 1,402,777,363 15.7%
_LOAD_FAST_BORROW_4 3,879,492,723 4,486,113,651 15.6%
_STORE_SUBSCR_LIST_INT 471,717,352 544,318,799 15.4%
_LOAD_FAST_BORROW_5 3,755,811,616 4,333,204,109 15.4%
_CALL_STR_1 47,062,820 54,237,197 15.2%
_LOAD_CONST_INLINE_BORROW 10,637,123,816 12,224,923,314 14.9%
_CALL_BUILTIN_FAST 754,556,366 861,396,500 14.2%
_GUARD_TOS_LIST 105,457,097 120,219,924 14.0%
_LOAD_FAST_BORROW_7 2,723,841,411 3,059,798,568 12.3%
_CONTAINS_OP_SET 1,479,076,357 1,657,682,322 12.1%
_CALL_LEN 1,101,811,634 1,234,355,036 12.0%
_JUMP_TO_TOP 2,368,815,264 2,648,161,073 11.8%
_TO_BOOL_NONE 191,609,882 169,926,883 -11.3%
_COMPARE_OP_STR 1,345,308,739 1,494,124,709 11.1%
_COMPARE_OP 380,133,630 421,983,726 11.0%
_COPY_FREE_VARS 46,687,414 51,705,859 10.7%
_BINARY_OP_MULTIPLY_FLOAT__NO_DECREF_INPUTS 430,309,104 476,245,279 10.7%
_POP_ITER 421,109,310 376,472,619 -10.6%
_STORE_FAST_7 1,014,622,136 1,119,715,715 10.4%
_LIST_EXTEND 70,350,182 77,074,066 9.6%
_GUARD_NOS_OVERFLOWED 1,228,429,102 1,345,229,058 9.5%
_COPY_2 1,533,580,158 1,666,754,068 8.7%
_CALL_INTRINSIC_1 70,350,182 76,384,306 8.6%
_LOAD_FAST_3 78,215,044 84,276,278 7.7%
_GUARD_TOS_ANY_SET 1,198,887,372 1,286,607,554 7.3%
_MAKE_FUNCTION 47,882,593 44,466,952 -7.1%
_BUILD_LIST 485,047,588 519,066,510 7.0%
_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 120,157,171 128,488,375 6.9%
_GUARD_CALLABLE_LIST_APPEND 876,883,752 934,349,672 6.6%
_BINARY_OP_INPLACE_ADD_UNICODE 3,530,385 3,756,018 6.4%
_GUARD_NOS_NOT_NULL 876,883,752 930,598,343 6.1%
_CALL_LIST_APPEND 1,011,704,326 1,071,253,515 5.9%
_SWAP_3 758,452,303 786,516,344 3.7%
_POP_TOP_INT 16,730,708 17,333,842 3.6%
_UNPACK_SEQUENCE_LIST 60,012,240 61,406,803 2.3%
_CONVERT_VALUE 79,515,446 80,972,582 1.8%
_FORMAT_SIMPLE 80,015,830 81,400,260 1.7%
_BUILD_STRING 40,187,757 40,873,882 1.7%
_STORE_SUBSCR 569,327,453 565,297,697 -0.7%
_BINARY_OP_SUBSCR_LIST_SLICE 425,721,392 427,782,978 0.5%
_GUARD_TOS_SLICE 425,721,392 427,782,978 0.5%
_STORE_SLICE 111,492,300 112,024,400 0.5%
_INIT_CALL_PY_EXACT_ARGS_4 498,445,573 500,729,116 0.5%
_RESUME_CHECK 886,618,654
_GET_ANEXT 94,136,760 94,136,760 0.0%
_BINARY_OP_SUBTRACT_FLOAT__NO_DECREF_INPUTS 71,999,640 71,999,640 0.0%
_GUARD_IP 5,464,787,622
_DYNAMIC_EXIT 493,297,413
_FOR_ITER_GEN_FRAME 266,478,426
_BINARY_OP_SUBSCR_CHECK_FUNC 97,045,202
_BINARY_OP_SUBSCR_INIT_CALL 97,043,742
_YIELD_VALUE 85,988,621
_CHECK_AND_ALLOCATE_OBJECT 56,026,081
_CREATE_INIT_FRAME 55,143,001
_EXIT_INIT_CHECK 55,046,281
_END_FOR 36,251,360
_SEND_GEN_FRAME 33,552,878
_REPLACE_WITH_TRUE 21,669,505
_LOAD_COMMON_CONSTANT 19,742,125
_GUARD_CALLABLE_TYPE_1 18,871,484
_LOAD_FAST_7 17,778,639
_LOAD_SMALL_INT 17,046,994
_LOAD_ATTR_METHOD_LAZY_DICT 17,040,796
_LOAD_SMALL_INT_3 13,141,207
_LOAD_SMALL_INT_2 12,620,500
_LOAD_ATTR_NONDESCRIPTOR_NO_DICT 12,128,677
_LOAD_ATTR_PROPERTY_FRAME 7,571,327
_END_SEND 7,198,215
_GUARD_CALLABLE_STR_1 6,073,517
_GET_AWAITABLE 5,401,758
_STORE_GLOBAL 5,361,560
_INSERT_NULL 1,694,518
_LOAD_SPECIAL 1,694,518
_GET_YIELD_FROM_ITER 1,685,382
_LOAD_FAST_CHECK 1,198,439
_CHECK_METHOD_VERSION_KW 764,011
_EXPAND_METHOD_KW 764,011
_IMPORT_FROM 742,028
_POP_EXCEPT 30,721
_GUARD_CALLABLE_TUPLE_1 28,780
_LOAD_SUPER_ATTR_ATTR 17,871
_LOAD_GLOBAL 14,720
_UNPACK_EX 13,456
_STORE_ATTR_WITH_HINT 620

Pair counts

Pair counts for top 100 Non-JIT uop pairs

Pairs of specialized operations that deoptimize and are then followed by the corresponding unspecialized instruction are not counted as pairs.

Not included in comparative output.

Unsupported opcodes

unsupported opcodes
Opcode Base Count Head Count Change
CALL_FUNCTION_EX 23,767
SEND 23,001
CALL 1,830

Optimizer errored out with opcode

Optimization stopped after encountering this opcode

Rare events

Counts of rare/unlikely events
Event Base Count Head Count Change
watched dict modification

A watched dict has been modified

120 286 138.3%
watched globals modification

A watched globals() dict has been modified

120 286 138.3%
set class

Setting an object's class, obj.__class__ = ...

22,592 22,592 0.0%
set bases

Setting the bases of a class, cls.__bases__ = ...

22 22 0.0%
set eval frame func

Setting the PEP 523 frame eval function _PyInterpreterState_SetFrameEvalFunc()

0 0
builtin dict

Modifying the builtins, __builtins__.__dict__[var] = ...

0 0
func modification

Modifying a function, e.g. func.__defaults__ = ..., etc.

313 313 0.0%

Meta stats

Meta statistics
Base Count Head Count Change
Number of data files 2,436 2,436 0.0%

Stats gathered on: 2025-10-23