Skip to content

Latest commit

 

History

History
4814 lines (4563 loc) · 102 KB

bm-20250116-azure-x86_64-iritkatriel-binaryops-3.14.0a4+-c57fe46-pystats-vs-base.md

File metadata and controls

4814 lines (4563 loc) · 102 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
BINARY_OP_EXTEND 158,167,777 265,830,900 68.1%
BINARY_OP 942,904,456 840,530,136 -10.9%
UNARY_INVERT 11,046,235 11,759,630 6.5%
LOAD_FAST_CHECK 4,555,710 4,793,491 5.2%
LOAD_SPECIAL 13,622,662 14,256,820 4.7%
IMPORT_FROM 8,981,990 9,139,149 1.7%
IMPORT_NAME 9,600,941 9,758,324 1.6%
LOAD_SUPER_ATTR_METHOD 60,666,132 61,538,029 1.4%
CALL_BOUND_METHOD_GENERAL 7,714,479 7,793,800 1.0%
TO_BOOL_INT 258,863,833 261,208,174 0.9%
CALL_KW_BOUND_METHOD 1,781,078 1,769,076 -0.7%
TO_BOOL_LIST 93,639,145 94,045,432 0.4%
LOAD_ATTR_PROPERTY 72,999,638 73,315,644 0.4%
LOAD_ATTR 853,491,249 856,840,353 0.4%
CALL_PY_GENERAL 320,307,779 321,388,547 0.3%
LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 226,631,412 227,343,301 0.3%
CALL_METHOD_DESCRIPTOR_FAST 363,688,470 364,797,474 0.3%
LOAD_FAST_AND_CLEAR 69,624,576 69,834,316 0.3%
CALL_NON_PY_GENERAL 817,837,687 820,206,625 0.3%
CALL_BUILTIN_CLASS 168,357,004 168,830,691 0.3%
BUILD_MAP 111,416,343 111,702,575 0.3%
LOAD_NAME 9,742,713 9,717,709 -0.3%
POP_JUMP_IF_NOT_NONE 530,162,803 531,512,575 0.3%
COPY_FREE_VARS 348,358,559 349,230,670 0.3%
LOAD_ATTR_MODULE 516,557,140 517,736,165 0.2%
JUMP_FORWARD 413,658,161 414,422,663 0.2%
LIST_EXTEND 89,882,091 90,040,302 0.2%
LOAD_GLOBAL_MODULE 3,292,218,337 3,297,558,868 0.2%
STORE_ATTR_INSTANCE_VALUE 984,268,559 985,853,770 0.2%
STORE_SUBSCR_DICT 357,084,185 357,628,235 0.2%
CALL_PY_EXACT_ARGS 3,212,815,768 3,217,565,427 0.1%
POP_JUMP_IF_NONE 274,916,177 275,319,162 0.1%
LOAD_ATTR_METHOD_WITH_VALUES 2,499,227,291 2,502,759,447 0.1%
RETURN_VALUE 5,427,181,212 5,434,765,196 0.1%
POP_TOP 3,120,902,782 3,125,204,101 0.1%
UNARY_NOT 57,740,199 57,819,374 0.1%
CONTAINS_OP_DICT 441,601,237 442,142,297 0.1%
RESUME_CHECK 6,310,223,111 6,317,726,056 0.1%
BUILD_LIST 668,736,780 669,500,527 0.1%
FOR_ITER_GEN 242,349,639 242,109,548 -0.1%
CALL_METHOD_DESCRIPTOR_NOARGS 333,859,959 334,177,315 0.1%
INTERPRETER_EXIT 1,629,709,308 1,631,198,067 0.1%
LOAD_DEREF 1,379,517,825 1,380,761,273 0.1%
NOP 2,537,644,864 2,539,926,714 0.1%
LOAD_ATTR_INSTANCE_VALUE 4,823,778,495 4,827,949,188 0.1%
CALL_KW_PY 94,924,404 95,003,156 0.1%
POP_ITER 1,037,665,618 1,038,490,235 0.1%
CONTAINS_OP 155,650,554 155,773,888 0.1%
SWAP 2,145,626,610 2,147,274,455 0.1%
GET_ITER 1,263,799,959 1,264,768,608 0.1%
LOAD_SUPER_ATTR 2,650 2,648 -0.1%
LIST_APPEND 225,761,986 225,931,064 0.1%
FOR_ITER_LIST 2,197,355,626 2,198,953,900 0.1%
COMPARE_OP 518,889,807 519,266,992 0.1%
COPY 2,247,288,472 2,248,873,743 0.1%
LOAD_FAST 37,380,233,705 37,406,371,419 0.1%
BINARY_OP_SUBTRACT_FLOAT 340,658,139 340,895,941 0.1%
UNPACK_SEQUENCE_TWO_TUPLE 781,361,127 781,891,378 0.1%
LOAD_CONST_IMMORTAL 6,483,685,647 6,487,997,554 0.1%
CALL_ISINSTANCE 841,965,561 842,473,206 0.1%
STORE_FAST_STORE_FAST 792,642,110 793,046,547 0.1%
LOAD_ATTR_METHOD_NO_DICT 2,559,610,015 2,560,869,691 0.0%
EXTENDED_ARG 497,365,398 497,134,425 -0.0%
POP_JUMP_IF_FALSE 10,746,314,333 10,751,278,293 0.0%
BUILD_TUPLE 1,181,143,324 1,181,669,503 0.0%
LOAD_GLOBAL_BUILTIN 5,782,578,942 5,785,123,941 0.0%
LOAD_FAST_LOAD_FAST 11,045,133,907 11,049,946,554 0.0%
STORE_FAST 13,495,093,497 13,500,947,421 0.0%
BINARY_SUBSCR_TUPLE_INT 292,956,009 292,829,455 -0.0%
IS_OP 520,428,959 520,204,770 -0.0%
PUSH_NULL 1,376,103,778 1,376,675,774 0.0%
FOR_ITER_RANGE 630,474,156 630,711,110 0.0%
TO_BOOL_BOOL 3,885,782,815 3,887,225,810 0.0%
POP_JUMP_IF_TRUE 2,097,494,756 2,098,246,313 0.0%
COMPARE_OP_INT 2,755,751,246 2,756,691,448 0.0%
UNPACK_SEQUENCE_TUPLE 403,677,526 403,540,605 -0.0%
RESUME 33,691 33,680 -0.0%
FOR_ITER_TUPLE 537,428,049 537,296,929 -0.0%
BUILD_SET 773,686 773,506 -0.0%
FOR_ITER 1,476,568,652 1,476,909,337 0.0%
LOAD_SMALL_INT 7,317,494,588 7,318,938,760 0.0%
CALL_FUNCTION_EX 153,607,244 153,577,167 -0.0%
JUMP_BACKWARD 5,759,163,445 5,760,222,125 0.0%
CALL 403,061 402,993 -0.0%
CALL_BUILTIN_FAST 1,062,581,386 1,062,754,866 0.0%
BINARY_OP_ADD_FLOAT 504,585,266 504,665,366 0.0%
CALL_BOUND_METHOD_EXACT_ARGS 175,328,481 175,303,306 -0.0%
CALL_TYPE_1 370,789,786 370,738,162 -0.0%
BINARY_SUBSCR 2,357,003,962 2,357,323,671 0.0%
LOAD_CONST_MORTAL 1,726,943,931 1,727,173,673 0.0%
SET_FUNCTION_ATTRIBUTE 96,748,510 96,761,334 0.0%
CALL_BUILTIN_FAST_WITH_KEYWORDS 97,151,389 97,140,522 -0.0%
UNPACK_SEQUENCE 1,828,799 1,828,599 -0.0%
MAKE_FUNCTION 115,827,245 115,839,521 0.0%
LOAD_ATTR_WITH_HINT 83,626,663 83,634,113 0.0%
TO_BOOL_STR 79,693,982 79,687,579 -0.0%
YIELD_VALUE 1,113,246,677 1,113,165,659 -0.0%
TO_BOOL 264,367,356 264,385,289 0.0%
BINARY_SUBSCR_LIST_INT 2,720,903,629 2,721,072,553 0.0%
CALL_LIST_APPEND 1,276,162,693 1,276,241,836 0.0%
COMPARE_OP_STR 1,586,971,328 1,587,049,982 0.0%
LOAD_ATTR_NONDESCRIPTOR_NO_DICT 76,993,104 76,989,400 -0.0%
CALL_LEN 1,404,581,429 1,404,647,926 0.0%
DICT_MERGE 36,784,275 36,782,616 -0.0%
CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 154,850,354 154,844,348 -0.0%
LOAD_ATTR_CLASS 379,254,412 379,241,895 -0.0%
LOAD_SUPER_ATTR_ATTR 3,115,261 3,115,159 -0.0%
RETURN_GENERATOR 416,793,091 416,804,554 0.0%
LOAD_ATTR_CLASS_WITH_METACLASS_CHECK 23,493,878 23,493,299 -0.0%
LOAD_CONST 130,973 130,970 -0.0%
CALL_KW 120,790 120,788 -0.0%
LOAD_ATTR_SLOT 1,637,938,482 1,637,913,935 -0.0%
MAKE_CELL 68,026,254 68,025,321 -0.0%
CONTAINS_OP_SET 1,756,318,410 1,756,295,887 -0.0%
CALL_BUILTIN_O 918,380,763 918,370,133 -0.0%
MAP_ADD 67,300,209 67,299,431 -0.0%
CHECK_EXC_MATCH 20,546,292 20,546,069 -0.0%
RAISE_VARARGS 6,169,904 6,169,838 -0.0%
POP_EXCEPT 20,876,832 20,876,609 -0.0%
PUSH_EXC_INFO 20,876,853 20,876,630 -0.0%
TO_BOOL_NONE 498,487,889 498,493,106 0.0%
BINARY_SUBSCR_DICT 1,079,522,535 1,079,511,349 -0.0%
END_FOR 101,009,469 101,008,450 -0.0%
CALL_TUPLE_1 15,695,816 15,695,702 -0.0%
LOAD_GLOBAL 14,758,415 14,758,311 -0.0%
STORE_DEREF 73,338,942 73,338,517 -0.0%
STORE_FAST_LOAD_FAST 195,032,236 195,031,153 -0.0%
STORE_SUBSCR_LIST_INT 566,125,512 566,123,819 -0.0%
CALL_INTRINSIC_1 183,157,283 183,156,914 -0.0%
UNARY_NEGATIVE 127,568,872 127,568,646 -0.0%
STORE_ATTR 77,226,483 77,226,363 -0.0%
CALL_METHOD_DESCRIPTOR_O 332,409,979 332,410,429 0.0%
GET_YIELD_FROM_ITER 35,910,475 35,910,511 0.0%
STORE_ATTR_SLOT 972,651,357 972,650,661 -0.0%
UNPACK_SEQUENCE_LIST 62,370,353 62,370,310 -0.0%
JUMP_BACKWARD_NO_INTERRUPT 419,936,972 419,937,232 0.0%
EXIT_INIT_CHECK 242,416,495 242,416,391 -0.0%
LOAD_ATTR_METHOD_LAZY_DICT 74,955,643 74,955,611 -0.0%
CALL_ALLOC_AND_ENTER_INIT 244,473,124 244,473,020 -0.0%
STORE_SUBSCR 701,064,531 701,064,337 -0.0%
CALL_KW_NON_PY 84,423,340 84,423,317 -0.0%
BINARY_SUBSCR_GETITEM 156,403,106 156,403,069 -0.0%
BINARY_OP_ADD_INT 3,494,527,140 3,494,526,320 -0.0%
BINARY_OP_SUBTRACT_INT 1,662,973,885 1,662,974,215 0.0%
COMPARE_OP_FLOAT 188,535,207 188,535,179 -0.0%
BINARY_OP_MULTIPLY_INT 271,022,149 271,022,118 -0.0%
TO_BOOL_ALWAYS_TRUE 211,101,472 211,101,453 -0.0%
SEND_GEN 593,303,502 593,303,538 0.0%
DELETE_SUBSCR 131,417,729 131,417,726 -0.0%
BINARY_SUBSCR_STR_INT 1,260,966,304 1,260,966,304 0.0%
BINARY_OP_MULTIPLY_FLOAT 1,053,436,108 1,053,436,108 0.0%
END_SEND 302,607,369 302,607,369 0.0%
BINARY_SLICE 181,849,896 181,849,896 0.0%
GET_AWAITABLE 172,683,388 172,683,388 0.0%
BUILD_SLICE 156,807,836 156,807,836 0.0%
SEND 128,850,581 128,850,581 0.0%
FORMAT_SIMPLE 122,481,442 122,481,442 0.0%
CONVERT_VALUE 115,162,421 115,162,421 0.0%
STORE_SLICE 112,686,498 112,686,498 0.0%
GET_ANEXT 100,136,760 100,136,760 0.0%
CALL_STR_1 76,086,860 76,086,860 0.0%
BINARY_OP_ADD_UNICODE 71,561,596 71,561,596 0.0%
BUILD_STRING 62,253,733 62,253,733 0.0%
INSTRUMENTED_LINE 58,270,440 58,270,440 0.0%
DELETE_FAST 41,964,789 41,964,789 0.0%
INSTRUMENTED_RESUME 29,134,740 29,134,740 0.0%
INSTRUMENTED_RETURN_VALUE 29,134,440 29,134,440 0.0%
STORE_ATTR_WITH_HINT 8,976,841 8,976,841 0.0%
BINARY_OP_INPLACE_ADD_UNICODE 6,998,249 6,998,249 0.0%
STORE_GLOBAL 6,152,500 6,152,500 0.0%
END_ASYNC_FOR 6,000,000 6,000,000 0.0%
GET_AITER 6,000,000 6,000,000 0.0%
RERAISE 3,799,995 3,799,995 0.0%
DELETE_ATTR 1,645,921 1,645,921 0.0%
UNPACK_EX 781,020 781,020 0.0%
CLEANUP_THROW 98,718 98,718 0.0%
SET_UPDATE 84,553 84,553 0.0%
SET_ADD 59,548 59,548 0.0%
STORE_NAME 57,166 57,166 0.0%
LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 56,670 56,670 0.0%
DICT_UPDATE 17,546 17,546 0.0%
WITH_EXCEPT_START 5,321 5,321 0.0%
LOAD_BUILD_CLASS 3,896 3,896 0.0%
LOAD_LOCALS 3,624 3,624 0.0%
FORMAT_WITH_SPEC 2,752 2,752 0.0%
LOAD_FROM_DICT_OR_DEREF 1,476 1,476 0.0%
SETUP_ANNOTATIONS 152 152 0.0%
INSTRUMENTED_JUMP_BACKWARD 120 120 0.0%
DELETE_NAME 42 42 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
miss
ⓘ

Specialized instructions that deopt.

51,120,223 0.6% 79,714,935 0.9% 55.9%
deferred
ⓘ

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

942,592,154 11.1% 838,717,684 9.9% -11.0%
hit
ⓘ

Specialized instructions that complete.

7,512,810,086 88.3% 7,592,195,878 89.2% 1.1%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 304,986 23.9% 1,804,355 54.4% 491.6%
Success 971,871 76.1% 1,512,177 45.6% 55.6%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
and int 34,552 11.3% 1,301,389 72.1% 3,666.5%
xor 18,902 6.2% 254,322 14.1% 1,245.5%
or 7,179 2.4% 4,307 0.2% -40.0%
subtract different types 636 0.2% 628 0.0% -1.3%
and other 1,255 0.4% 1,250 0.1% -0.4%
power 8,210 2.7% 8,203 0.5% -0.1%
true divide different types 2,035 0.7% 2,036 0.1% 0.0%
floor divide 33,977 11.1% 33,990 1.9% 0.0%
add different types 43,810 14.4% 43,799 2.4% -0.0%
lshift 19,451 6.4% 19,448 1.1% -0.0%
add other 36,655 12.0% 36,660 2.0% 0.0%
rshift 23,509 7.7% 23,512 1.3% 0.0%
true divide float 11,588 3.8% 11,587 0.6% -0.0%
remainder 43,344 14.2% 43,341 2.4% -0.0%
subtract other 8,513 2.8% 8,513 0.5% 0.0%
multiply different types 7,225 2.4% 7,225 0.4% 0.0%
multiply other 2,678 0.9% 2,678 0.1% 0.0%
true divide other 1,384 0.5% 1,384 0.1% 0.0%
and different types 83 0.0% 83 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.

181,849,896 100.0% 181,849,896 100.0% 0.0%

BINARY_SUBSCR

specialization stats for BINARY_SUBSCR family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred
ⓘ

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

2,356,387,824 29.9% 2,356,707,461 30.0% 0.0%
miss
ⓘ

Specialized instructions that deopt.

5,928,458 0.1% 5,928,416 0.1% -0.0%
hit
ⓘ

Specialized instructions that complete.

5,504,823,125 70.0% 5,504,854,314 70.0% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 607,872 83.5% 607,950 83.5% 0.0%
Success 119,916 16.5% 119,910 16.5% -0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
other 196,994 32.4% 197,083 32.4% 0.0%
tuple slice 12,451 2.0% 12,446 2.0% -0.0%
buffer int 28,494 4.7% 28,487 4.7% -0.0%
list slice 193,731 31.9% 193,732 31.9% 0.0%
array int 121,418 20.0% 121,418 20.0% 0.0%
out of range 47,128 7.8% 47,128 7.8% 0.0%
string slice 3,609 0.6% 3,609 0.6% 0.0%
sequence int 2,941 0.5% 2,941 0.5% 0.0%
buffer slice 1,013 0.2% 1,013 0.2% 0.0%
code complex parameters 72 0.0% 72 0.0% 0.0%
array slice 21 0.0% 21 0.0% 0.0%

CALL

specialization stats for CALL family
Kind Base Count Base Ratio Head Count Head Ratio Change
miss
ⓘ

Specialized instructions that deopt.

155,031,804 1.4% 155,263,117 1.4% 0.1%
hit
ⓘ

Specialized instructions that complete.

11,073,126,119 98.6% 11,080,242,097 98.6% 0.1%
deferred
ⓘ

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

230,114 0.0% 230,094 0.0% -0.0%
deopt
ⓘ

Specialized instructions that deopt.

22,186 0.0% 22,186 0.0% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 3,096,635 100.0% 3,100,951 100.0% 0.1%
Failure 446 0.0% 446 0.0% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
init not simple 752 168.6% 752 168.6% 0.0%
out of versions 566 126.9% 566 126.9% 0.0%
init not python 267 59.9% 267 59.9% 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.

111,577 15.8% 111,575 15.8% -0.0%
miss
ⓘ

Specialized instructions that deopt.

584,005 82.9% 584,005 82.9% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 20,093 99.4% 20,093 99.4% 0.0%
Failure 120 0.6% 120 0.6% 0.0%

COMPARE_OP

specialization stats for COMPARE_OP family
Kind Base Count Base Ratio Head Count Head Ratio Change
miss
ⓘ

Specialized instructions that deopt.

1,398,079 0.0% 1,477,277 0.0% 5.7%
deferred
ⓘ

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

518,659,110 10.3% 519,034,693 10.3% 0.1%
hit
ⓘ

Specialized instructions that complete.

4,529,859,702 89.7% 4,530,799,332 89.7% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 44,017 17.1% 45,511 17.5% 3.4%
Failure 212,734 82.9% 214,336 82.5% 0.8%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
float long 13,829 6.5% 15,391 7.2% 11.3%
bool 1,968 0.9% 2,005 0.9% 1.9%
other 7,822 3.7% 7,805 3.6% -0.2%
big int 23,381 11.0% 23,391 10.9% 0.0%
different types 45,736 21.5% 45,723 21.3% -0.0%
tuple 90,862 42.7% 90,884 42.4% 0.0%
baseobject 11,926 5.6% 11,928 5.6% 0.0%
set 6,820 3.2% 6,819 3.2% -0.0%
string 7,639 3.6% 7,639 3.6% 0.0%
bytes 1,367 0.6% 1,367 0.6% 0.0%
list 1,028 0.5% 1,028 0.5% 0.0%
long float 356 0.2% 356 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.

155,589,281 6.6% 155,712,586 6.6% 0.1%
hit
ⓘ

Specialized instructions that complete.

2,196,002,660 93.3% 2,196,521,197 93.3% 0.0%
miss
ⓘ

Specialized instructions that deopt.

1,916,987 0.1% 1,916,987 0.1% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 59,212 60.8% 59,241 60.8% 0.0%
Success 38,235 39.2% 38,235 39.2% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
other 11,668 19.7% 11,697 19.7% 0.2%
tuple 11,599 19.6% 11,598 19.6% -0.0%
list 14,565 24.6% 14,566 24.6% 0.0%
str 21,380 36.1% 21,380 36.1% 0.0%

FOR_ITER

specialization stats for FOR_ITER family
Kind Base Count Base Ratio Head Count Head Ratio Change
hit
ⓘ

Specialized instructions that complete.

3,443,653,488 67.7% 3,445,121,604 67.7% 0.0%
deferred
ⓘ

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

1,476,136,358 29.0% 1,476,477,002 29.0% 0.0%
miss
ⓘ

Specialized instructions that deopt.

163,953,982 3.2% 163,949,883 3.2% -0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 427,211 12.1% 427,265 12.1% 0.0%
Success 3,098,369 87.9% 3,098,283 87.9% -0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
set 19,466 4.6% 19,555 4.6% 0.5%
itertools 4,601 1.1% 4,593 1.1% -0.2%
dict values 6,911 1.6% 6,908 1.6% -0.0%
other 11,325 2.7% 11,322 2.6% -0.0%
dict items 70,148 16.4% 70,131 16.4% -0.0%
enumerate 35,015 8.2% 35,011 8.2% -0.0%
zip 172,146 40.3% 172,146 40.3% 0.0%
dict keys 83,979 19.7% 83,979 19.7% 0.0%
seq iter 14,960 3.5% 14,960 3.5% 0.0%
ascii string 3,390 0.8% 3,390 0.8% 0.0%
reversed list 3,139 0.7% 3,139 0.7% 0.0%
bytes 1,223 0.3% 1,223 0.3% 0.0%
map 734 0.2% 734 0.2% 0.0%
callable 174 0.0% 174 0.0% 0.0%

LOAD_ATTR

specialization stats for LOAD_ATTR family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred
ⓘ

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

851,644,649 6.2% 854,992,988 6.2% 0.4%
hit
ⓘ

Specialized instructions that complete.

12,103,778,029 87.5% 12,114,912,498 87.5% 0.1%
miss
ⓘ

Specialized instructions that deopt.

871,344,814 6.3% 871,345,861 6.3% 0.0%
deopt
ⓘ

Specialized instructions that deopt.

1,404,473 0.0% 1,404,473 0.0% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 565,604 3.3% 566,398 3.3% 0.1%
Success 16,521,638 96.7% 16,521,661 96.7% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
non overriding descriptor 6,090 1.1% 6,198 1.1% 1.8%
overriding descriptor 57,822 10.2% 58,275 10.3% 0.8%
class method obj 16,644 2.9% 16,602 2.9% -0.3%
method 81,845 14.5% 81,917 14.5% 0.1%
overridden 9,123 1.6% 9,119 1.6% -0.0%
metaclass attribute 25,289 4.5% 25,283 4.5% -0.0%
mutable class 66,198 11.7% 66,188 11.7% -0.0%
not in dict 6,405 1.1% 6,405 1.1% 0.0%
module attr not found 5,109 0.9% 5,109 0.9% 0.0%
expected error 2,729 0.5% 2,729 0.5% 0.0%
not managed dict 1,800 0.3% 1,800 0.3% 0.0%
class attr simple 1,580 0.3% 1,580 0.3% 0.0%
builtin class method 1,180 0.2% 1,180 0.2% 0.0%
non object slot 1,092 0.2% 1,092 0.2% 0.0%
out of versions 400 0.1% 400 0.1% 0.0%
wrong number arguments 235 0.0% 235 0.0% 0.0%
split dict 163 0.0% 163 0.0% 0.0%
property 46 0.0% 46 0.0% 0.0%
property not py function 40 0.0% 40 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.

9,074,743,957 99.8% 9,082,629,487 99.8% 0.1%
deferred
ⓘ

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

14,622,746 0.2% 14,622,688 0.2% -0.0%
deopt
ⓘ

Specialized instructions that deopt.

1,594 0.0% 1,594 0.0% 0.0%
miss
ⓘ

Specialized instructions that deopt.

53,322 0.0% 53,322 0.0% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 136,455 100.0% 136,409 100.0% -0.0%
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.

63,781,393 100.0% 64,653,188 100.0% 1.4%
deferred
ⓘ

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

255 0.0% 253 0.0% -0.8%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 2,395 100.0% 2,395 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
hit
ⓘ

Specialized instructions that complete.

593,288,791 82.2% 593,288,827 82.2% 0.0%
deferred
ⓘ

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

128,815,789 17.8% 128,815,789 17.8% 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
Success 652 1.9% 652 1.9% 0.0%
Failure 34,412 98.1% 34,412 98.1% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
async generator send 24,440 71.0% 24,440 71.0% 0.0%
other 5,959 17.3% 5,959 17.3% 0.0%
list 3,261 9.5% 3,261 9.5% 0.0%
tuple 752 2.2% 752 2.2% 0.0%

STORE_ATTR

specialization stats for STORE_ATTR family
Kind Base Count Base Ratio Head Count Head Ratio Change
hit
ⓘ

Specialized instructions that complete.

1,849,296,028 90.5% 1,850,876,983 90.5% 0.1%
miss
ⓘ

Specialized instructions that deopt.

116,600,729 5.7% 116,604,289 5.7% 0.0%
deferred
ⓘ

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

77,133,151 3.8% 77,133,020 3.8% -0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 52,760 2.3% 52,770 2.3% 0.0%
Success 2,239,825 97.7% 2,239,880 97.7% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
not managed dict 3,344 6.3% 3,352 6.4% 0.2%
other 271,800 515.2% 271,949 515.3% 0.1%
class attr simple 24,477 46.4% 24,477 46.4% 0.0%
not in dict 7,666 14.5% 7,666 14.5% 0.0%
overriding descriptor 6,033 11.4% 6,033 11.4% 0.0%
split dict 5,322 10.1% 5,322 10.1% 0.0%
property 1,665 3.2% 1,665 3.2% 0.0%
not in keys 810 1.5% 810 1.5% 0.0%
method 743 1.4% 743 1.4% 0.0%
mutable class 730 1.4% 730 1.4% 0.0%
overridden 361 0.7% 361 0.7% 0.0%
no dict 111 0.2% 111 0.2% 0.0%
non object slot 100 0.2% 100 0.2% 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.

112,686,498 100.0% 112,686,498 100.0% 0.0%

STORE_SUBSCR

specialization stats for STORE_SUBSCR family
Kind Base Count Base Ratio Head Count Head Ratio Change
hit
ⓘ

Specialized instructions that complete.

923,207,477 56.8% 923,749,834 56.9% 0.1%
deferred
ⓘ

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

700,880,196 43.2% 700,880,003 43.1% -0.0%
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
Success 2,077 1.1% 2,076 1.1% -0.0%
Failure 182,298 98.9% 182,298 98.9% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
other 86,613 47.5% 86,613 47.5% 0.0%
array int 48,931 26.8% 48,931 26.8% 0.0%
dict subclass no override 19,343 10.6% 19,343 10.6% 0.0%
py simple 17,323 9.5% 17,323 9.5% 0.0%
bytearray int 5,309 2.9% 5,309 2.9% 0.0%
list slice 3,032 1.7% 3,032 1.7% 0.0%
out of range 1,679 0.9% 1,679 0.9% 0.0%
array slice 68 0.0% 68 0.0% 0.0%

TO_BOOL

specialization stats for TO_BOOL family
Kind Base Count Base Ratio Head Count Head Ratio Change
hit
ⓘ

Specialized instructions that complete.

4,753,793,273 92.7% 4,757,991,099 92.7% 0.1%
deferred
ⓘ

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

263,686,413 5.1% 263,704,874 5.1% 0.0%
miss
ⓘ

Specialized instructions that deopt.

112,453,126 2.2% 112,447,724 2.2% -0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 631,387 22.5% 630,874 22.5% -0.1%
Success 2,169,763 77.5% 2,169,647 77.5% -0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
mapping 77,651 12.3% 77,166 12.2% -0.6%
sequence 10,062 1.6% 10,051 1.6% -0.1%
dict 20,555 3.3% 20,549 3.3% -0.0%
tuple 97,417 15.4% 97,394 15.4% -0.0%
other 132,986 21.1% 133,002 21.1% 0.0%
number 258,646 41.0% 258,642 41.0% -0.0%
bytes 18,921 3.0% 18,921 3.0% 0.0%
set 13,307 2.1% 13,307 2.1% 0.0%
bytearray 1,420 0.2% 1,420 0.2% 0.0%
float 382 0.1% 382 0.1% 0.0%
memory view 40 0.0% 40 0.0% 0.0%

UNPACK_SEQUENCE

specialization stats for UNPACK_SEQUENCE family
Kind Base Count Base Ratio Head Count Head Ratio Change
hit
ⓘ

Specialized instructions that complete.

1,247,405,306 99.9% 1,247,798,593 99.9% 0.0%
deferred
ⓘ

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

1,816,361 0.1% 1,816,166 0.1% -0.0%
miss
ⓘ

Specialized instructions that deopt.

3,700 0.0% 3,700 0.0% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Failure 985 7.9% 992 7.9% 0.7%
Success 11,533 92.1% 11,521 92.1% -0.1%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
sequence 758 77.0% 765 77.1% 0.9%
iterator 136 13.8% 136 13.7% 0.0%
other 91 9.2% 91 9.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
Specialized misses
ⓘ

Specialized instructions, e.g. LOAD_ATTR_MODULE that deopt.

1,480,533,087 0.7% 1,509,433,380 0.7% 2.0%
Not specialized
ⓘ

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

7,787,667,740 3.7% 7,689,820,680 3.6% -1.3%
Specialized hits
ⓘ

Specialized instructions, e.g. LOAD_ATTR_MODULE that complete.

80,699,043,594 38.3% 80,830,774,537 38.3% 0.2%
Basic
ⓘ

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

120,708,638,293 57.3% 120,783,482,800 57.3% 0.1%

Deferred by instruction

Breakdown of deferred (not specialized) instruction counts by family
Name Base Count Base Ratio Head Count Head Ratio Change
BINARY_OP 942,592,154 12.1% 838,717,684 10.9% -11.0%
LOAD_ATTR 851,644,649 10.9% 854,992,988 11.1% 0.4%
CONTAINS_OP 155,589,281 2.0% 155,712,586 2.0% 0.1%
COMPARE_OP 518,659,110 6.7% 519,034,693 6.8% 0.1%
FOR_ITER 1,476,136,358 19.0% 1,476,477,002 19.2% 0.0%
BINARY_SUBSCR 2,356,387,824 30.3% 2,356,707,461 30.7% 0.0%
TO_BOOL 263,686,413 3.4% 263,704,874 3.4% 0.0%
STORE_SUBSCR 700,880,196 9.0% 700,880,003 9.1% -0.0%
BINARY_SLICE 181,849,896 2.3% 181,849,896 2.4% 0.0%
SEND 128,815,789 1.7% 128,815,789 1.7% 0.0%

Misses by instruction

Breakdown of misses (specialized deopts) instruction counts by family
Name Base Count Base Ratio Head Count Head Ratio Change
FOR_ITER_LIST 81,967,193 5.5% 81,958,206 5.4% -0.0%
FOR_ITER_TUPLE 81,908,100 5.5% 81,912,994 5.4% 0.0%
LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 86,869,777 5.9% 86,868,353 5.8% -0.0%
TO_BOOL_NONE 55,287,049 3.7% 55,286,861 3.7% -0.0%
LOAD_ATTR_INSTANCE_VALUE 368,080,034 24.9% 368,080,877 24.4% 0.0%
LOAD_ATTR_SLOT 90,676,051 6.1% 90,676,228 6.0% 0.0%
LOAD_ATTR_METHOD_WITH_VALUES 266,997,243 18.0% 266,996,943 17.7% -0.0%
CALL_PY_EXACT_ARGS 82,383,323 5.6% 82,383,347 5.5% 0.0%
STORE_ATTR_INSTANCE_VALUE 94,280,275 6.4% 94,280,275 6.2% 0.0%
TO_BOOL_ALWAYS_TRUE 49,778,735 3.4%
BINARY_OP_EXTEND 52,777,626 3.5%

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,444 0.1% 4,262,443 0.1% -0.3%
Calls via PyEval_EvalFrame (function vectorcall) 951,063,817 14.1% 952,406,108 14.1% 0.1%
Calls via PyEval_EvalFrame (vector) 955,341,157 14.1% 956,672,447 14.1% 0.1%
Frames pushed 5,484,289,615 81.2% 5,491,886,492 81.2% 0.1%
Calls to Python functions inlined 5,122,151,086 75.8% 5,128,176,728 75.8% 0.1%
Calls to PyEval_EvalDefault 1,634,202,626 24.2% 1,635,691,381 24.2% 0.1%
Calls via PyEval_EvalFrame (total) 1,634,202,626 24.2% 1,635,691,381 24.2% 0.1%
Calls via PyEval_EvalFrame (api) 279,384,038 4.1% 279,540,158 4.1% 0.1%
Calls via PyEval_EvalFrame (generator) 678,861,469 10.0% 679,018,934 10.0% 0.0%
Calls via PyEval_EvalFrame (function ex) 24,922,749 0.4% 24,922,347 0.4% -0.0%
Calls via PyEval_EvalFrame (slot) 261,415,254 3.9% 261,414,429 3.9% -0.0%
Frame objects created 71,326,679 1.1% 71,326,613 1.1% -0.0%
Calls via PyEval_EvalFrame (build class) 3,896 0.0% 3,896 0.0% 0.0%
Calls via PyEval_EvalFrame (method) 132,513,139 2.0% 132,513,139 2.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
Method cache dunder misses 35,197,810 18,454,478 -47.6%
Method cache misses 63,030,648 70,703,973 12.2%
Method cache collisions 97,421,632 88,353,055 -9.3%
Method cache dunder hits 2,876,949,876 2,897,078,314 0.7%
Inline values 179,220,467 179,854,360 0.4%
Method cache hits 2,290,604,057 2,287,061,591 -0.2%
Interpreter immortal increfs 27,546,287,515 17.7% 27,571,712,655 17.7% 0.1%
Interpreter immortal decrefs 45,515,170,910 23.8% 45,547,045,744 23.8% 0.1%
Interpreter mortal decrefs 88,714,912,608 46.4% 88,771,557,984 46.4% 0.1%
Interpreter mortal increfs 79,357,727,189 51.0% 79,406,522,753 51.0% 0.1%
Frees 7,873,438,585 7,877,555,216 0.1%
Mortal increfs 25,348,109,279 16.3% 25,360,924,706 16.3% 0.1%
Allocations to 512 bytes 7,202,062,791 39.2% 7,205,685,909 39.2% 0.1%
Allocations 7,280,055,960 39.6% 7,283,690,443 39.6% 0.0%
Frees to freelist 11,094,043,671 11,099,164,458 0.0%
Allocations from freelist 11,093,935,885 60.4% 11,099,056,083 60.4% 0.0%
Mortal decrefs 33,045,796,213 17.3% 33,058,553,283 17.3% 0.0%
Allocations to 4 kbytes 71,572,030 0.4% 71,583,393 0.4% 0.0%
Immortal decrefs 23,915,758,085 12.5% 23,918,877,008 12.5% 0.0%
Immortal increfs 23,298,426,209 15.0% 23,298,389,274 15.0% -0.0%
Allocations over 4 kbytes 6,421,139 0.0% 6,421,141 0.0% 0.0%
Materialize dict (on request) 4,444,166 2.5% 4,444,166 2.5% 0.0%
Materialize dict (new key) 476,016 0.3% 476,016 0.3% 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 364,333 103,378,174 9,336,963,845 731,402,193 766,732,017 364,333 103,378,174 9,337,080,830 731,449,345 766,725,573
2 7,998 4,366,437 5,605,458,094 0 0 7,998 4,366,437 5,605,451,326 0 0

Optimization (Tier 2) stats

statistics about the Tier 2 optimizer

Rare events

Counts of rare/unlikely events
Event Base Count Head Count Change
set class
ⓘ

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

22,629 22,629 0.0%
set bases
ⓘ

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

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

38 38 0.0%
watched dict modification
ⓘ

A watched dict has been modified

0 0
watched globals modification
ⓘ

A watched globals() dict has been modified

0 0

Meta stats

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

Stats gathered on: 2025-01-17