Skip to content

Latest commit

 

History

History
8093 lines (7433 loc) · 151 KB

bm-20241214-vultr-x86_64-python-0ac40acec045c4ce780c-3.14.0a2+-0ac40ac-pystats-richards.md

File metadata and controls

8093 lines (7433 loc) · 151 KB

Pystats results

  • benchmark: richards
  • fork: python
  • ref: 0ac40acec045c4ce780cf7d887fcbe4c661e82b7
  • commit hash: 0ac40ac
  • commit date: 2024-12-14T17:25:49+02:00

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 Count Self Cumulative Miss ratio
LOAD_FAST 396,911,520 22.9% 22.9%
LOAD_ATTR_INSTANCE_VALUE 157,711,420 9.1% 32.0% 32.2%
RETURN_VALUE 115,533,240 6.7% 38.7%
TO_BOOL_BOOL 106,448,080 6.1% 44.9%
POP_JUMP_IF_FALSE 104,602,100 6.0% 50.9%
STORE_FAST 90,801,060 5.2% 56.2%
STORE_ATTR_INSTANCE_VALUE 87,718,820 5.1% 61.2% 14.8%
LOAD_ATTR_METHOD_WITH_VALUES 84,648,140 4.9% 66.1% 42.6%
CALL_PY_EXACT_ARGS 84,167,960 4.9% 71.0% 12.5%
RESUME_CHECK 76,638,220 4.4% 75.4% 0.0%
LOAD_GLOBAL_MODULE 54,250,280 3.1% 78.5%
LOAD_CONST_IMMORTAL 53,359,320 3.1% 81.6%
POP_JUMP_IF_NOT_NONE 38,420,760 2.2% 83.8%
COPY 37,639,640 2.2% 86.0%
ENTER_EXECUTOR 33,675,600 1.9% 88.0%
LOAD_FAST_LOAD_FAST 30,678,280 1.8% 89.7%
POP_TOP 25,870,520 1.5% 91.2%
LOAD_SMALL_INT 24,410,040 1.4% 92.6%
COMPARE_OP_INT 19,524,060 1.1% 93.8%
POP_JUMP_IF_TRUE 15,790,100 0.9% 94.7%
LOAD_GLOBAL_BUILTIN 15,789,900 0.9% 95.6%
CALL_ISINSTANCE 15,789,600 0.9% 96.5%
SWAP 11,970,480 0.7% 97.2%
BINARY_OP_ADD_INT 11,202,240 0.6% 97.8%
POP_JUMP_IF_NONE 8,066,040 0.5% 98.3%
JUMP_FORWARD 6,417,900 0.4% 98.7%
BINARY_OP 6,001,080 0.3% 99.0%
UNARY_NOT 5,580,000 0.3% 99.3%
BINARY_OP_SUBTRACT_INT 3,001,440 0.2% 99.5%
NOP 2,788,620 0.2% 99.7%
BINARY_SUBSCR_LIST_INT 2,499,180 0.1% 99.8%
LOAD_CONST 1,200,360 0.1% 99.9%
STORE_SUBSCR_LIST_INT 602,880 0.0% 99.9%
FOR_ITER_RANGE 559,260 0.0% 100.0%
GET_ITER 558,780 0.0% 100.0%
JUMP_BACKWARD 55,400 0.0% 100.0%
EXIT_INIT_CHECK 6,240 0.0% 100.0%
CALL_ALLOC_AND_ENTER_INIT 6,240 0.0% 100.0%
BUILD_LIST 1,920 0.0% 100.0%
LOAD_ATTR_CLASS 1,440 0.0% 100.0%
EXTENDED_ARG 720 0.0% 100.0%
PUSH_NULL 600 0.0% 100.0%
CALL_NON_PY_GENERAL 540 0.0% 100.0%
CALL_BUILTIN_CLASS 300 0.0% 100.0%
LOAD_ATTR 280 0.0% 100.0%
CALL 260 0.0% 100.0%
INTERPRETER_EXIT 240 0.0% 100.0%
LOAD_ATTR_MODULE 180 0.0% 100.0%
BUILD_TUPLE 120 0.0% 100.0%
LOAD_ATTR_METHOD_NO_DICT 120 0.0% 100.0%
TO_BOOL 100 0.0% 100.0%
LOAD_GLOBAL 100 0.0% 100.0%
MAKE_FUNCTION 60 0.0% 100.0%
CALL_FUNCTION_EX 60 0.0% 100.0%
COPY_FREE_VARS 60 0.0% 100.0%
FOR_ITER 60 0.0% 100.0%
IS_OP 60 0.0% 100.0%
LOAD_DEREF 60 0.0% 100.0%
MAKE_CELL 60 0.0% 100.0%
SET_FUNCTION_ATTRIBUTE 60 0.0% 100.0%
STORE_DEREF 60 0.0% 100.0%
STORE_FAST_STORE_FAST 60 0.0% 100.0%
BINARY_OP_SUBTRACT_FLOAT 60 0.0% 100.0%
BINARY_SUBSCR_TUPLE_INT 60 0.0% 100.0%
CALL_METHOD_DESCRIPTOR_NOARGS 60 0.0% 100.0%
CALL_METHOD_DESCRIPTOR_O 60 0.0% 100.0%
CALL_PY_GENERAL 60 0.0% 100.0%
UNPACK_SEQUENCE_TWO_TUPLE 60 0.0% 100.0%
BINARY_SUBSCR 20 0.0% 100.0%
COMPARE_OP 20 0.0% 100.0%
UNPACK_SEQUENCE 20 0.0% 100.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.

Pair Count Self Cumulative
LOAD_FAST LOAD_ATTR_INSTANCE_VALUE 128,720,920 7.4% 7.4%
TO_BOOL_BOOL POP_JUMP_IF_FALSE 85,077,980 4.9% 12.4%
LOAD_FAST LOAD_ATTR_METHOD_WITH_VALUES 83,781,140 4.8% 17.2%
CALL_PY_EXACT_ARGS RESUME_CHECK 76,522,300 4.4% 21.6%
LOAD_FAST STORE_ATTR_INSTANCE_VALUE 66,196,080 3.8% 25.4%
STORE_ATTR_INSTANCE_VALUE LOAD_FAST 60,943,660 3.5% 29.0%
RESUME_CHECK LOAD_FAST 58,143,100 3.4% 32.3%
POP_JUMP_IF_FALSE LOAD_FAST 49,028,120 2.8% 35.2%
LOAD_ATTR_METHOD_WITH_VALUES CALL_PY_EXACT_ARGS 45,008,660 2.6% 37.8%
LOAD_CONST_IMMORTAL LOAD_FAST 43,139,760 2.5% 40.2%
RETURN_VALUE TO_BOOL_BOOL 41,388,240 2.4% 42.6%
STORE_FAST LOAD_FAST 40,791,180 2.4% 45.0%
RETURN_VALUE RETURN_VALUE 37,158,240 2.1% 47.1%
LOAD_ATTR_INSTANCE_VALUE STORE_FAST 37,133,760 2.1% 49.3%
ENTER_EXECUTOR RETURN_VALUE 33,336,920 1.9% 51.2%
POP_JUMP_IF_NOT_NONE LOAD_FAST 30,416,940 1.8% 53.0%
LOAD_FAST POP_JUMP_IF_NOT_NONE 27,261,720 1.6% 54.5%
COPY TO_BOOL_BOOL 25,669,160 1.5% 56.0%
LOAD_ATTR_INSTANCE_VALUE COPY 25,669,160 1.5% 57.5%
STORE_FAST ENTER_EXECUTOR 25,625,520 1.5% 59.0%
LOAD_FAST RETURN_VALUE 24,207,520 1.4% 60.4%
RETURN_VALUE STORE_FAST 23,770,500 1.4% 61.8%
LOAD_ATTR_INSTANCE_VALUE LOAD_FAST 22,994,460 1.3% 63.1%
STORE_ATTR_INSTANCE_VALUE LOAD_CONST_IMMORTAL 22,523,520 1.3% 64.4%
LOAD_ATTR_METHOD_WITH_VALUES LOAD_FAST_LOAD_FAST 21,368,700 1.2% 65.6%
LOAD_ATTR_INSTANCE_VALUE CALL_PY_EXACT_ARGS 20,769,580 1.2% 66.8%
LOAD_FAST LOAD_GLOBAL_MODULE 20,669,040 1.2% 68.0%
POP_TOP LOAD_FAST 19,728,440 1.1% 69.2%
COMPARE_OP_INT POP_JUMP_IF_FALSE 19,524,060 1.1% 70.3%
LOAD_ATTR_INSTANCE_VALUE LOAD_SMALL_INT 18,526,800 1.1% 71.4%
LOAD_FAST STORE_FAST 18,301,680 1.1% 72.4%
LOAD_GLOBAL_MODULE TO_BOOL_BOOL 18,021,020 1.0% 73.5%
POP_JUMP_IF_FALSE LOAD_GLOBAL_MODULE 16,864,080 1.0% 74.4%
RESUME_CHECK LOAD_CONST_IMMORTAL 15,990,720 0.9% 75.4%
TO_BOOL_BOOL POP_JUMP_IF_TRUE 15,790,100 0.9% 76.3%
LOAD_GLOBAL_BUILTIN LOAD_FAST 15,789,900 0.9% 77.2%
LOAD_FAST_LOAD_FAST LOAD_ATTR_INSTANCE_VALUE 15,789,640 0.9% 78.1%
POP_JUMP_IF_TRUE LOAD_FAST 15,789,600 0.9% 79.0%
STORE_FAST LOAD_GLOBAL_BUILTIN 15,789,600 0.9% 79.9%
CALL_ISINSTANCE TO_BOOL_BOOL 15,789,600 0.9% 80.8%
LOAD_GLOBAL_MODULE CALL_ISINSTANCE 15,789,600 0.9% 81.7%
POP_JUMP_IF_FALSE POP_TOP 15,459,120 0.9% 82.6%
LOAD_ATTR_METHOD_WITH_VALUES LOAD_FAST 15,190,800 0.9% 83.5%
COPY LOAD_ATTR_INSTANCE_VALUE 11,970,480 0.7% 84.2%
SWAP STORE_ATTR_INSTANCE_VALUE 11,970,480 0.7% 84.9%
LOAD_ATTR_INSTANCE_VALUE POP_JUMP_IF_NOT_NONE 11,159,040 0.6% 85.5%
LOAD_SMALL_INT BINARY_OP_ADD_INT 10,600,800 0.6% 86.1%
RETURN_VALUE POP_TOP 10,410,660 0.6% 86.8%
LOAD_FAST CALL_PY_EXACT_ARGS 10,210,800 0.6% 87.3%
LOAD_CONST_IMMORTAL STORE_FAST 10,209,960 0.6% 87.9%
POP_JUMP_IF_FALSE RETURN_VALUE 10,209,600 0.6% 88.5%
POP_JUMP_IF_FALSE LOAD_CONST_IMMORTAL 10,209,600 0.6% 89.1%
LOAD_FAST_LOAD_FAST STORE_ATTR_INSTANCE_VALUE 9,305,260 0.5% 89.6%
BINARY_OP_ADD_INT SWAP 8,368,800 0.5% 90.1%
LOAD_GLOBAL_MODULE COMPARE_OP_INT 8,223,360 0.5% 90.6%
LOAD_FAST POP_JUMP_IF_NONE 8,066,040 0.5% 91.1%
LOAD_GLOBAL_MODULE COPY 7,810,320 0.5% 91.5%
CALL_PY_EXACT_ARGS ENTER_EXECUTOR 7,447,360 0.4% 92.0%
JUMP_FORWARD LOAD_FAST 6,138,540 0.4% 92.3%
POP_TOP JUMP_FORWARD 6,138,480 0.4% 92.7%
LOAD_ATTR_INSTANCE_VALUE COMPARE_OP_INT 5,941,920 0.3% 93.0%
POP_JUMP_IF_NOT_NONE LOAD_FAST_LOAD_FAST 5,773,200 0.3% 93.3%
POP_JUMP_IF_NONE LOAD_FAST 5,662,080 0.3% 93.7%
STORE_FAST LOAD_GLOBAL_MODULE 5,581,240 0.3% 94.0%
LOAD_FAST_LOAD_FAST CALL_PY_EXACT_ARGS 5,580,560 0.3% 94.3%
UNARY_NOT RETURN_VALUE 5,580,000 0.3% 94.6%
LOAD_ATTR_INSTANCE_VALUE TO_BOOL_BOOL 5,580,000 0.3% 95.0%
TO_BOOL_BOOL UNARY_NOT 5,580,000 0.3% 95.3%
LOAD_SMALL_INT COMPARE_OP_INT 5,358,280 0.3% 95.6%
LOAD_ATTR_INSTANCE_VALUE RETURN_VALUE 5,026,240 0.3% 95.9%
LOAD_SMALL_INT BINARY_OP 4,799,520 0.3% 96.2%
LOAD_FAST COPY 4,160,160 0.2% 96.4%
LOAD_ATTR_INSTANCE_VALUE LOAD_GLOBAL_MODULE 3,348,960 0.2% 96.6%
LOAD_SMALL_INT BINARY_OP_SUBTRACT_INT 3,001,440 0.2% 96.8%
STORE_ATTR_INSTANCE_VALUE LOAD_GLOBAL_MODULE 2,875,440 0.2% 96.9%
RETURN_VALUE LOAD_FAST 2,794,800 0.2% 97.1%
NOP LOAD_FAST 2,788,620 0.2% 97.3%
POP_JUMP_IF_FALSE NOP 2,788,560 0.2% 97.4%
RESUME_CHECK LOAD_GLOBAL_MODULE 2,501,940 0.1% 97.6%
LOAD_FAST BINARY_SUBSCR_LIST_INT 2,499,180 0.1% 97.7%
POP_JUMP_IF_NONE LOAD_FAST_LOAD_FAST 2,403,580 0.1% 97.8%
BINARY_OP_SUBTRACT_INT SWAP 2,400,000 0.1% 98.0%
LOAD_GLOBAL_MODULE CALL_PY_EXACT_ARGS 2,400,000 0.1% 98.1%
STORE_FAST LOAD_CONST_IMMORTAL 2,399,940 0.1% 98.3%
BINARY_OP LOAD_SMALL_INT 2,399,760 0.1% 98.4%
LOAD_ATTR_METHOD_WITH_VALUES LOAD_GLOBAL_MODULE 2,399,760 0.1% 98.5%
LOAD_FAST LOAD_SMALL_INT 2,232,360 0.1% 98.7%
BINARY_OP_ADD_INT LOAD_FAST 2,232,000 0.1% 98.8%
BINARY_SUBSCR_LIST_INT LOAD_FAST 2,232,000 0.1% 98.9%
POP_JUMP_IF_NOT_NONE LOAD_CONST_IMMORTAL 2,230,560 0.1% 99.0%
BINARY_OP SWAP 1,201,680 0.1% 99.1%
BINARY_OP LOAD_FAST 1,200,000 0.1% 99.2%
BINARY_OP LOAD_CONST 1,198,080 0.1% 99.3%
LOAD_CONST BINARY_OP 1,198,080 0.1% 99.3%
LOAD_ATTR_INSTANCE_VALUE LOAD_ATTR_INSTANCE_VALUE 959,380 0.1% 99.4%
LOAD_ATTR_METHOD_WITH_VALUES LOAD_ATTR_METHOD_WITH_VALUES 680,220 0.0% 99.4%
LOAD_SMALL_INT LOAD_FAST 646,560 0.0% 99.5%
LOAD_FAST STORE_SUBSCR_LIST_INT 602,880 0.0% 99.5%
LOAD_GLOBAL_MODULE LOAD_FAST 602,880 0.0% 99.5%
BINARY_OP_ADD_INT LOAD_SMALL_INT 601,440 0.0% 99.6%

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.

CACHE

Successors and predecessors for CACHE
Successors Count Percentage
RESUME_CHECK 300 100.0%

BINARY_SUBSCR

Successors and predecessors for BINARY_SUBSCR
Predecessors Count Percentage
LOAD_SMALL_INT 20 100.0%
Successors Count Percentage
BINARY_SUBSCR_TUPLE_INT 20 100.0%

EXIT_INIT_CHECK

Successors and predecessors for EXIT_INIT_CHECK
Predecessors Count Percentage
RETURN_VALUE 6,240 100.0%
Successors Count Percentage
RETURN_VALUE 6,240 100.0%

GET_ITER

Successors and predecessors for GET_ITER
Predecessors Count Percentage
LOAD_GLOBAL_MODULE 558,480 99.9%
CALL_BUILTIN_CLASS 240 0.0%
LOAD_FAST 60 0.0%
Successors Count Percentage
FOR_ITER_RANGE 558,540 100.0%
EXTENDED_ARG 240 0.0%

INTERPRETER_EXIT

Successors and predecessors for INTERPRETER_EXIT
Predecessors Count Percentage
RETURN_VALUE 240 100.0%

MAKE_FUNCTION

Successors and predecessors for MAKE_FUNCTION
Predecessors Count Percentage
LOAD_CONST 60 100.0%
Successors Count Percentage
SET_FUNCTION_ATTRIBUTE 60 100.0%

NOP

Successors and predecessors for NOP
Predecessors Count Percentage
POP_JUMP_IF_FALSE 2,788,560 100.0%
POP_JUMP_IF_TRUE 60 0.0%
Successors Count Percentage
LOAD_FAST 2,788,620 100.0%

POP_TOP

Successors and predecessors for POP_TOP
Predecessors Count Percentage
POP_JUMP_IF_FALSE 15,459,120 59.8%
RETURN_VALUE 10,410,660 40.2%
POP_JUMP_IF_TRUE 380 0.0%
CALL_NON_PY_GENERAL 300 0.0%
CALL_METHOD_DESCRIPTOR_O 60 0.0%
Successors Count Percentage
LOAD_FAST 19,728,440 76.3%
JUMP_FORWARD 6,138,480 23.7%
LOAD_CONST_IMMORTAL 1,860 0.0%
LOAD_GLOBAL_MODULE 1,440 0.0%
JUMP_BACKWARD 300 0.0%

PUSH_NULL

Successors and predecessors for PUSH_NULL
Predecessors Count Percentage
LOAD_FAST 480 80.0%
LOAD_ATTR_MODULE 120 20.0%
Successors Count Percentage
CALL_NON_PY_GENERAL 400 66.7%
CALL 80 13.3%
LOAD_FAST 60 10.0%
LOAD_FAST_LOAD_FAST 60 10.0%

RETURN_VALUE

Successors and predecessors for RETURN_VALUE
Predecessors Count Percentage
RETURN_VALUE 37,158,240 32.2%
ENTER_EXECUTOR 33,336,920 28.9%
LOAD_FAST 24,207,520 21.0%
POP_JUMP_IF_FALSE 10,209,600 8.8%
UNARY_NOT 5,580,000 4.8%
Successors Count Percentage
TO_BOOL_BOOL 41,388,240 35.8%
RETURN_VALUE 37,158,240 32.2%
STORE_FAST 23,770,500 20.6%
POP_TOP 10,410,660 9.0%
LOAD_FAST 2,794,800 2.4%

TO_BOOL

Successors and predecessors for TO_BOOL
Predecessors Count Percentage
LOAD_ATTR_INSTANCE_VALUE 60 60.0%
TO_BOOL 20 20.0%
LOAD_FAST 20 20.0%
Successors Count Percentage
POP_JUMP_IF_FALSE 60 60.0%
TO_BOOL 20 20.0%
TO_BOOL_BOOL 20 20.0%

UNARY_NOT

Successors and predecessors for UNARY_NOT
Predecessors Count Percentage
TO_BOOL_BOOL 5,580,000 100.0%
Successors Count Percentage
RETURN_VALUE 5,580,000 100.0%

BINARY_OP

Successors and predecessors for BINARY_OP
Predecessors Count Percentage
LOAD_SMALL_INT 4,799,520 80.0%
LOAD_CONST 1,198,080 20.0%
LOAD_GLOBAL_MODULE 1,920 0.0%
BINARY_OP 1,540 0.0%
LOAD_FAST 20 0.0%
Successors Count Percentage
LOAD_SMALL_INT 2,399,760 40.0%
SWAP 1,201,680 20.0%
LOAD_FAST 1,200,000 20.0%
LOAD_CONST 1,198,080 20.0%
BINARY_OP 1,540 0.0%

BUILD_LIST

Successors and predecessors for BUILD_LIST
Predecessors Count Percentage
LOAD_SMALL_INT 1,920 100.0%
Successors Count Percentage
LOAD_GLOBAL_MODULE 1,920 100.0%

BUILD_TUPLE

Successors and predecessors for BUILD_TUPLE
Predecessors Count Percentage
LOAD_FAST 60 50.0%
LOAD_FAST_LOAD_FAST 60 50.0%
Successors Count Percentage
LOAD_CONST 60 50.0%
CALL_METHOD_DESCRIPTOR_O 40 33.3%
CALL 20 16.7%

CALL

Successors and predecessors for CALL
Predecessors Count Percentage
PUSH_NULL 80 30.8%
LOAD_FAST_LOAD_FAST 60 23.1%
LOAD_CONST_IMMORTAL 40 15.4%
BUILD_TUPLE 20 7.7%
LOAD_FAST 20 7.7%
Successors Count Percentage
CALL_NON_PY_GENERAL 100 38.5%
CALL_PY_EXACT_ARGS 80 30.8%
CALL_BUILTIN_CLASS 20 7.7%
CALL_METHOD_DESCRIPTOR_NOARGS 20 7.7%
CALL_METHOD_DESCRIPTOR_O 20 7.7%

CALL_FUNCTION_EX

Successors and predecessors for CALL_FUNCTION_EX
Predecessors Count Percentage
LOAD_FAST 60 100.0%

COMPARE_OP

Successors and predecessors for COMPARE_OP
Predecessors Count Percentage
LOAD_SMALL_INT 20 100.0%
Successors Count Percentage
COMPARE_OP_INT 20 100.0%

COPY

Successors and predecessors for COPY
Predecessors Count Percentage
LOAD_ATTR_INSTANCE_VALUE 25,669,160 68.2%
LOAD_GLOBAL_MODULE 7,810,320 20.8%
LOAD_FAST 4,160,160 11.1%
Successors Count Percentage
TO_BOOL_BOOL 25,669,160 68.2%
LOAD_ATTR_INSTANCE_VALUE 11,970,480 31.8%

COPY_FREE_VARS

Successors and predecessors for COPY_FREE_VARS
Predecessors Count Percentage
CALL_PY_EXACT_ARGS 60 100.0%
Successors Count Percentage
RESUME_CHECK 60 100.0%

EXTENDED_ARG

Successors and predecessors for EXTENDED_ARG
Predecessors Count Percentage
GET_ITER 240 33.3%
JUMP_BACKWARD 240 33.3%
POP_JUMP_IF_FALSE 240 33.3%
Successors Count Percentage
FOR_ITER_RANGE 480 66.7%
JUMP_BACKWARD 240 33.3%

FOR_ITER

Successors and predecessors for FOR_ITER
Predecessors Count Percentage
JUMP_BACKWARD 60 100.0%
Successors Count Percentage
LOAD_FAST 60 100.0%

IS_OP

Successors and predecessors for IS_OP
Predecessors Count Percentage
LOAD_CONST_IMMORTAL 60 100.0%
Successors Count Percentage
STORE_FAST 60 100.0%

JUMP_BACKWARD

Successors and predecessors for JUMP_BACKWARD
Predecessors Count Percentage
STORE_FAST 54,720 98.8%
POP_TOP 300 0.5%
EXTENDED_ARG 240 0.4%
ENTER_EXECUTOR 140 0.3%
Successors Count Percentage
LOAD_FAST 54,840 99.0%
EXTENDED_ARG 240 0.4%
FOR_ITER_RANGE 240 0.4%
FOR_ITER 60 0.1%
RETURN_VALUE 20 0.0%

JUMP_FORWARD

Successors and predecessors for JUMP_FORWARD
Predecessors Count Percentage
POP_TOP 6,138,480 95.6%
STORE_FAST 279,420 4.4%
Successors Count Percentage
LOAD_FAST 6,138,540 95.6%
LOAD_FAST_LOAD_FAST 279,360 4.4%

LOAD_ATTR

Successors and predecessors for LOAD_ATTR
Predecessors Count Percentage
LOAD_FAST 140 50.0%
LOAD_GLOBAL_MODULE 60 21.4%
LOAD_ATTR_INSTANCE_VALUE 40 14.3%
LOAD_ATTR 20 7.1%
LOAD_FAST_LOAD_FAST 20 7.1%
Successors Count Percentage
LOAD_FAST_LOAD_FAST 60 21.4%
LOAD_ATTR_INSTANCE_VALUE 60 21.4%
LOAD_ATTR_MODULE 60 21.4%
LOAD_ATTR_METHOD_NO_DICT 40 14.3%
LOAD_ATTR_METHOD_WITH_VALUES 40 14.3%

LOAD_CONST

Successors and predecessors for LOAD_CONST
Predecessors Count Percentage
BINARY_OP 1,198,080 99.8%
LOAD_GLOBAL_MODULE 1,200 0.1%
LOAD_ATTR_INSTANCE_VALUE 480 0.0%
LOAD_SMALL_INT 240 0.0%
STORE_ATTR_INSTANCE_VALUE 240 0.0%
Successors Count Percentage
BINARY_OP 1,198,080 99.8%
LOAD_FAST 1,440 0.1%
COMPARE_OP_INT 480 0.0%
LOAD_GLOBAL_MODULE 240 0.0%
MAKE_FUNCTION 60 0.0%

LOAD_DEREF

Successors and predecessors for LOAD_DEREF
Predecessors Count Percentage
STORE_FAST 60 100.0%
Successors Count Percentage
STORE_FAST 60 100.0%

LOAD_FAST

Successors and predecessors for LOAD_FAST
Predecessors Count Percentage
STORE_ATTR_INSTANCE_VALUE 60,943,660 15.4%
RESUME_CHECK 58,143,100 14.6%
POP_JUMP_IF_FALSE 49,028,120 12.4%
LOAD_CONST_IMMORTAL 43,139,760 10.9%
STORE_FAST 40,791,180 10.3%
Successors Count Percentage
LOAD_ATTR_INSTANCE_VALUE 128,720,920 32.4%
LOAD_ATTR_METHOD_WITH_VALUES 83,781,140 21.1%
STORE_ATTR_INSTANCE_VALUE 66,196,080 16.7%
POP_JUMP_IF_NOT_NONE 27,261,720 6.9%
RETURN_VALUE 24,207,520 6.1%

LOAD_FAST_LOAD_FAST

Successors and predecessors for LOAD_FAST_LOAD_FAST
Predecessors Count Percentage
LOAD_ATTR_METHOD_WITH_VALUES 21,368,700 69.7%
POP_JUMP_IF_NOT_NONE 5,773,200 18.8%
POP_JUMP_IF_NONE 2,403,580 7.8%
STORE_ATTR_INSTANCE_VALUE 568,080 1.9%
JUMP_FORWARD 279,360 0.9%
Successors Count Percentage
LOAD_ATTR_INSTANCE_VALUE 15,789,640 51.5%
STORE_ATTR_INSTANCE_VALUE 9,305,260 30.3%
CALL_PY_EXACT_ARGS 5,580,560 18.2%
LOAD_FAST_LOAD_FAST 2,400 0.0%
LOAD_SMALL_INT 240 0.0%

LOAD_GLOBAL

Successors and predecessors for LOAD_GLOBAL
Predecessors Count Percentage
RESUME_CHECK 60 60.0%
POP_JUMP_IF_FALSE 20 20.0%
STORE_FAST 20 20.0%
Successors Count Percentage
LOAD_GLOBAL_MODULE 80 80.0%
LOAD_GLOBAL_BUILTIN 20 20.0%

LOAD_SMALL_INT

Successors and predecessors for LOAD_SMALL_INT
Predecessors Count Percentage
LOAD_ATTR_INSTANCE_VALUE 18,526,800 75.9%
BINARY_OP 2,399,760 9.8%
LOAD_FAST 2,232,360 9.1%
BINARY_OP_ADD_INT 601,440 2.5%
STORE_ATTR_INSTANCE_VALUE 562,800 2.3%
Successors Count Percentage
BINARY_OP_ADD_INT 10,600,800 43.4%
COMPARE_OP_INT 5,358,280 22.0%
BINARY_OP 4,799,520 19.7%
BINARY_OP_SUBTRACT_INT 3,001,440 12.3%
LOAD_FAST 646,560 2.6%

MAKE_CELL

Successors and predecessors for MAKE_CELL
Predecessors Count Percentage
CALL_PY_GENERAL 60 100.0%
Successors Count Percentage
RESUME_CHECK 60 100.0%

POP_JUMP_IF_FALSE

Successors and predecessors for POP_JUMP_IF_FALSE
Predecessors Count Percentage
TO_BOOL_BOOL 85,077,980 81.3%
COMPARE_OP_INT 19,524,060 18.7%
TO_BOOL 60 0.0%
Successors Count Percentage
LOAD_FAST 49,028,120 46.9%
LOAD_GLOBAL_MODULE 16,864,080 16.1%
POP_TOP 15,459,120 14.8%
RETURN_VALUE 10,209,600 9.8%
LOAD_CONST_IMMORTAL 10,209,600 9.8%

POP_JUMP_IF_NONE

Successors and predecessors for POP_JUMP_IF_NONE
Predecessors Count Percentage
LOAD_FAST 8,066,040 100.0%
Successors Count Percentage
LOAD_FAST 5,662,080 70.2%
LOAD_FAST_LOAD_FAST 2,403,580 29.8%
LOAD_GLOBAL_MODULE 380 0.0%

POP_JUMP_IF_NOT_NONE

Successors and predecessors for POP_JUMP_IF_NOT_NONE
Predecessors Count Percentage
LOAD_FAST 27,261,720 71.0%
LOAD_ATTR_INSTANCE_VALUE 11,159,040 29.0%
Successors Count Percentage
LOAD_FAST 30,416,940 79.2%
LOAD_FAST_LOAD_FAST 5,773,200 15.0%
LOAD_CONST_IMMORTAL 2,230,560 5.8%
LOAD_CONST 60 0.0%

POP_JUMP_IF_TRUE

Successors and predecessors for POP_JUMP_IF_TRUE
Predecessors Count Percentage
TO_BOOL_BOOL 15,790,100 100.0%
Successors Count Percentage
LOAD_FAST 15,789,600 100.0%
POP_TOP 380 0.0%
NOP 60 0.0%
RETURN_VALUE 60 0.0%

SET_FUNCTION_ATTRIBUTE

Successors and predecessors for SET_FUNCTION_ATTRIBUTE
Predecessors Count Percentage
MAKE_FUNCTION 60 100.0%
Successors Count Percentage
STORE_FAST 60 100.0%

STORE_DEREF

Successors and predecessors for STORE_DEREF
Predecessors Count Percentage
CALL_NON_PY_GENERAL 60 100.0%
Successors Count Percentage
LOAD_FAST 60 100.0%

STORE_FAST

Successors and predecessors for STORE_FAST
Predecessors Count Percentage
LOAD_ATTR_INSTANCE_VALUE 37,133,760 40.9%
RETURN_VALUE 23,770,500 26.2%
LOAD_FAST 18,301,680 20.2%
LOAD_CONST_IMMORTAL 10,209,960 11.2%
FOR_ITER_RANGE 558,960 0.6%
Successors Count Percentage
LOAD_FAST 40,791,180 44.9%
ENTER_EXECUTOR 25,625,520 28.2%
LOAD_GLOBAL_BUILTIN 15,789,600 17.4%
LOAD_GLOBAL_MODULE 5,581,240 6.1%
LOAD_CONST_IMMORTAL 2,399,940 2.6%

STORE_FAST_STORE_FAST

Successors and predecessors for STORE_FAST_STORE_FAST
Predecessors Count Percentage
UNPACK_SEQUENCE_TWO_TUPLE 60 100.0%
Successors Count Percentage
LOAD_FAST 60 100.0%

SWAP

Successors and predecessors for SWAP
Predecessors Count Percentage
BINARY_OP_ADD_INT 8,368,800 69.9%
BINARY_OP_SUBTRACT_INT 2,400,000 20.0%
BINARY_OP 1,201,680 10.0%
Successors Count Percentage
STORE_ATTR_INSTANCE_VALUE 11,970,480 100.0%

UNPACK_SEQUENCE

Successors and predecessors for UNPACK_SEQUENCE
Predecessors Count Percentage
CALL_METHOD_DESCRIPTOR_NOARGS 20 100.0%
Successors Count Percentage
UNPACK_SEQUENCE_TWO_TUPLE 20 100.0%

BINARY_OP_ADD_INT

Successors and predecessors for BINARY_OP_ADD_INT
Predecessors Count Percentage
LOAD_SMALL_INT 10,600,800 94.6%
LOAD_ATTR_INSTANCE_VALUE 601,440 5.4%
Successors Count Percentage
SWAP 8,368,800 74.7%
LOAD_FAST 2,232,000 19.9%
LOAD_SMALL_INT 601,440 5.4%

BINARY_OP_SUBTRACT_FLOAT

Successors and predecessors for BINARY_OP_SUBTRACT_FLOAT
Predecessors Count Percentage
LOAD_FAST 40 66.7%
BINARY_OP 20 33.3%
Successors Count Percentage
STORE_FAST 60 100.0%

BINARY_OP_SUBTRACT_INT

Successors and predecessors for BINARY_OP_SUBTRACT_INT
Predecessors Count Percentage
LOAD_SMALL_INT 3,001,440 100.0%
Successors Count Percentage
SWAP 2,400,000 80.0%
LOAD_FAST 601,440 20.0%

BINARY_SUBSCR_LIST_INT

Successors and predecessors for BINARY_SUBSCR_LIST_INT
Predecessors Count Percentage
LOAD_FAST 2,499,180 100.0%
Successors Count Percentage
LOAD_FAST 2,232,000 89.3%
STORE_FAST 267,180 10.7%

BINARY_SUBSCR_TUPLE_INT

Successors and predecessors for BINARY_SUBSCR_TUPLE_INT
Predecessors Count Percentage
LOAD_SMALL_INT 40 66.7%
BINARY_SUBSCR 20 33.3%
Successors Count Percentage
STORE_FAST 60 100.0%

CALL_ALLOC_AND_ENTER_INIT

Successors and predecessors for CALL_ALLOC_AND_ENTER_INIT
Predecessors Count Percentage
LOAD_GLOBAL_MODULE 4,800 76.9%
RETURN_VALUE 1,440 23.1%
Successors Count Percentage
RESUME_CHECK 6,240 100.0%

CALL_BUILTIN_CLASS

Successors and predecessors for CALL_BUILTIN_CLASS
Predecessors Count Percentage
LOAD_FAST 280 93.3%
CALL 20 6.7%
Successors Count Percentage
GET_ITER 240 80.0%
STORE_FAST 60 20.0%

CALL_ISINSTANCE

Successors and predecessors for CALL_ISINSTANCE
Predecessors Count Percentage
LOAD_GLOBAL_MODULE 15,789,600 100.0%
Successors Count Percentage
TO_BOOL_BOOL 15,789,600 100.0%

CALL_METHOD_DESCRIPTOR_NOARGS

Successors and predecessors for CALL_METHOD_DESCRIPTOR_NOARGS
Predecessors Count Percentage
LOAD_ATTR_METHOD_NO_DICT 40 66.7%
CALL 20 33.3%
Successors Count Percentage
UNPACK_SEQUENCE_TWO_TUPLE 40 66.7%
UNPACK_SEQUENCE 20 33.3%

CALL_METHOD_DESCRIPTOR_O

Successors and predecessors for CALL_METHOD_DESCRIPTOR_O
Predecessors Count Percentage
BUILD_TUPLE 40 66.7%
CALL 20 33.3%
Successors Count Percentage
POP_TOP 60 100.0%

CALL_NON_PY_GENERAL

Successors and predecessors for CALL_NON_PY_GENERAL
Predecessors Count Percentage
PUSH_NULL 400 74.1%
CALL 100 18.5%
LOAD_FAST_LOAD_FAST 40 7.4%
Successors Count Percentage
POP_TOP 300 55.6%
RETURN_VALUE 60 11.1%
LOAD_FAST 60 11.1%
STORE_DEREF 60 11.1%
STORE_FAST 60 11.1%

CALL_PY_EXACT_ARGS

Successors and predecessors for CALL_PY_EXACT_ARGS
Predecessors Count Percentage
LOAD_ATTR_METHOD_WITH_VALUES 45,008,660 53.5%
LOAD_ATTR_INSTANCE_VALUE 20,769,580 24.7%
LOAD_FAST 10,210,800 12.1%
LOAD_FAST_LOAD_FAST 5,580,560 6.6%
LOAD_GLOBAL_MODULE 2,400,000 2.9%
Successors Count Percentage
RESUME_CHECK 76,522,300 90.9%
ENTER_EXECUTOR 7,447,360 8.8%
CALL_PY_EXACT_ARGS 198,240 0.2%
COPY_FREE_VARS 60 0.0%

CALL_PY_GENERAL

Successors and predecessors for CALL_PY_GENERAL
Predecessors Count Percentage
LOAD_CONST_IMMORTAL 40 66.7%
CALL 20 33.3%
Successors Count Percentage
MAKE_CELL 60 100.0%

COMPARE_OP_INT

Successors and predecessors for COMPARE_OP_INT
Predecessors Count Percentage
LOAD_GLOBAL_MODULE 8,223,360 42.1%
LOAD_ATTR_INSTANCE_VALUE 5,941,920 30.4%
LOAD_SMALL_INT 5,358,280 27.4%
LOAD_CONST 480 0.0%
COMPARE_OP 20 0.0%
Successors Count Percentage
POP_JUMP_IF_FALSE 19,524,060 100.0%

FOR_ITER_RANGE

Successors and predecessors for FOR_ITER_RANGE
Predecessors Count Percentage
GET_ITER 558,540 99.9%
EXTENDED_ARG 480 0.1%
JUMP_BACKWARD 240 0.0%
Successors Count Percentage
STORE_FAST 558,960 99.9%
LOAD_CONST_IMMORTAL 240 0.0%
LOAD_FAST 60 0.0%

LOAD_ATTR_CLASS

Successors and predecessors for LOAD_ATTR_CLASS
Predecessors Count Percentage
LOAD_GLOBAL_MODULE 1,440 100.0%
Successors Count Percentage
LOAD_FAST_LOAD_FAST 1,440 100.0%

LOAD_ATTR_INSTANCE_VALUE

Successors and predecessors for LOAD_ATTR_INSTANCE_VALUE
Predecessors Count Percentage
LOAD_FAST 128,720,920 81.6%
LOAD_FAST_LOAD_FAST 15,789,640 10.0%
COPY 11,970,480 7.6%
LOAD_ATTR_INSTANCE_VALUE 959,380 0.6%
LOAD_GLOBAL_MODULE 270,780 0.2%
Successors Count Percentage
STORE_FAST 37,133,760 23.5%
COPY 25,669,160 16.3%
LOAD_FAST 22,994,460 14.6%
CALL_PY_EXACT_ARGS 20,769,580 13.2%
LOAD_SMALL_INT 18,526,800 11.7%

LOAD_ATTR_METHOD_NO_DICT

Successors and predecessors for LOAD_ATTR_METHOD_NO_DICT
Predecessors Count Percentage
LOAD_ATTR_INSTANCE_VALUE 80 66.7%
LOAD_ATTR 40 33.3%
Successors Count Percentage
LOAD_FAST_LOAD_FAST 60 50.0%
CALL_METHOD_DESCRIPTOR_NOARGS 40 33.3%
CALL 20 16.7%

LOAD_ATTR_METHOD_WITH_VALUES

Successors and predecessors for LOAD_ATTR_METHOD_WITH_VALUES
Predecessors Count Percentage
LOAD_FAST 83,781,140 99.0%
LOAD_ATTR_METHOD_WITH_VALUES 680,220 0.8%
ENTER_EXECUTOR 185,300 0.2%
RETURN_VALUE 1,440 0.0%
LOAD_ATTR 40 0.0%
Successors Count Percentage
CALL_PY_EXACT_ARGS 45,008,660 53.2%
LOAD_FAST_LOAD_FAST 21,368,700 25.2%
LOAD_FAST 15,190,800 17.9%
LOAD_GLOBAL_MODULE 2,399,760 2.8%
LOAD_ATTR_METHOD_WITH_VALUES 680,220 0.8%

LOAD_ATTR_MODULE

Successors and predecessors for LOAD_ATTR_MODULE
Predecessors Count Percentage
LOAD_GLOBAL_MODULE 120 66.7%
LOAD_ATTR 60 33.3%
Successors Count Percentage
PUSH_NULL 120 66.7%
STORE_FAST 60 33.3%

LOAD_CONST_IMMORTAL

Successors and predecessors for LOAD_CONST_IMMORTAL
Predecessors Count Percentage
STORE_ATTR_INSTANCE_VALUE 22,523,520 42.2%
RESUME_CHECK 15,990,720 30.0%
POP_JUMP_IF_FALSE 10,209,600 19.1%
STORE_FAST 2,399,940 4.5%
POP_JUMP_IF_NOT_NONE 2,230,560 4.2%
Successors Count Percentage
LOAD_FAST 43,139,760 80.8%
STORE_FAST 10,209,960 19.1%
RETURN_VALUE 8,340 0.0%
LOAD_GLOBAL_MODULE 480 0.0%
LOAD_FAST_LOAD_FAST 240 0.0%

LOAD_GLOBAL_BUILTIN

Successors and predecessors for LOAD_GLOBAL_BUILTIN
Predecessors Count Percentage
STORE_FAST 15,789,600 100.0%
RESUME_CHECK 240 0.0%
POP_JUMP_IF_FALSE 40 0.0%
LOAD_GLOBAL 20 0.0%
Successors Count Percentage
LOAD_FAST 15,789,900 100.0%

LOAD_GLOBAL_MODULE

Successors and predecessors for LOAD_GLOBAL_MODULE
Predecessors Count Percentage
LOAD_FAST 20,669,040 38.1%
POP_JUMP_IF_FALSE 16,864,080 31.1%
STORE_FAST 5,581,240 10.3%
LOAD_ATTR_INSTANCE_VALUE 3,348,960 6.2%
STORE_ATTR_INSTANCE_VALUE 2,875,440 5.3%
Successors Count Percentage
TO_BOOL_BOOL 18,021,020 33.2%
CALL_ISINSTANCE 15,789,600 29.1%
COMPARE_OP_INT 8,223,360 15.2%
COPY 7,810,320 14.4%
CALL_PY_EXACT_ARGS 2,400,000 4.4%

RESUME_CHECK

Successors and predecessors for RESUME_CHECK
Predecessors Count Percentage
CALL_PY_EXACT_ARGS 76,522,300 99.8%
ENTER_EXECUTOR 109,260 0.1%
CALL_ALLOC_AND_ENTER_INIT 6,240 0.0%
CACHE 300 0.0%
COPY_FREE_VARS 60 0.0%
Successors Count Percentage
LOAD_FAST 58,143,100 75.9%
LOAD_CONST_IMMORTAL 15,990,720 20.9%
LOAD_GLOBAL_MODULE 2,501,940 3.3%
LOAD_FAST_LOAD_FAST 1,920 0.0%
LOAD_SMALL_INT 240 0.0%

STORE_ATTR_INSTANCE_VALUE

Successors and predecessors for STORE_ATTR_INSTANCE_VALUE
Predecessors Count Percentage
LOAD_FAST 66,196,080 75.5%
SWAP 11,970,480 13.6%
LOAD_FAST_LOAD_FAST 9,305,260 10.6%
STORE_ATTR_INSTANCE_VALUE 245,080 0.3%
LOAD_GLOBAL_MODULE 1,920 0.0%
Successors Count Percentage
LOAD_FAST 60,943,660 69.5%
LOAD_CONST_IMMORTAL 22,523,520 25.7%
LOAD_GLOBAL_MODULE 2,875,440 3.3%
LOAD_FAST_LOAD_FAST 568,080 0.6%
LOAD_SMALL_INT 562,800 0.6%

STORE_SUBSCR_LIST_INT

Successors and predecessors for STORE_SUBSCR_LIST_INT
Predecessors Count Percentage
LOAD_FAST 602,880 100.0%
Successors Count Percentage
ENTER_EXECUTOR 601,440 99.8%
LOAD_CONST_IMMORTAL 1,440 0.2%

TO_BOOL_BOOL

Successors and predecessors for TO_BOOL_BOOL
Predecessors Count Percentage
RETURN_VALUE 41,388,240 38.9%
COPY 25,669,160 24.1%
LOAD_GLOBAL_MODULE 18,021,020 16.9%
CALL_ISINSTANCE 15,789,600 14.8%
LOAD_ATTR_INSTANCE_VALUE 5,580,000 5.2%
Successors Count Percentage
POP_JUMP_IF_FALSE 85,077,980 79.9%
POP_JUMP_IF_TRUE 15,790,100 14.8%
UNARY_NOT 5,580,000 5.2%

UNPACK_SEQUENCE_TWO_TUPLE

Successors and predecessors for UNPACK_SEQUENCE_TWO_TUPLE
Predecessors Count Percentage
CALL_METHOD_DESCRIPTOR_NOARGS 40 66.7%
UNPACK_SEQUENCE 20 33.3%
Successors Count Percentage
STORE_FAST_STORE_FAST 60 100.0%

ENTER_EXECUTOR

Successors and predecessors for ENTER_EXECUTOR
Predecessors Count Percentage
STORE_FAST 25,625,520 76.1%
CALL_PY_EXACT_ARGS 7,447,360 22.1%
STORE_SUBSCR_LIST_INT 601,440 1.8%
LOAD_FAST 660 0.0%
ENTER_EXECUTOR 620 0.0%
Successors Count Percentage
RETURN_VALUE 33,336,920 99.0%
LOAD_ATTR_METHOD_WITH_VALUES 185,300 0.6%
RESUME_CHECK 109,260 0.3%
LOAD_SMALL_INT 42,960 0.1%
ENTER_EXECUTOR 620 0.0%

Specialization stats

Specialization stats by family

BINARY_OP

specialization stats for BINARY_OP family
Kind Count Ratio
deferred

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

5,999,520 29.7%
hit

Specialized instructions that complete.

14,203,740 70.3%
Success Count Ratio
Success 20 1.3%
Failure 1,540 98.7%
Failure kind Count Ratio
and int 600 39.0%
floor divide 600 39.0%
xor 300 19.5%
multiply different types 40 2.6%

BINARY_SUBSCR

specialization stats for BINARY_SUBSCR family
Kind Count Ratio
hit

Specialized instructions that complete.

2,499,240 100.0%
Success Count Ratio
Success 20 100.0%
Failure 0 0.0%

CALL

specialization stats for CALL family
Kind Count Ratio
hit

Specialized instructions that complete.

89,457,500 89.5%
miss

Specialized instructions that deopt.

10,506,720 10.5%
Success Count Ratio
Success 198,500 100.0%
Failure 0 0.0%

COMPARE_OP

specialization stats for COMPARE_OP family
Kind Count Ratio
hit

Specialized instructions that complete.

19,524,060 100.0%
Success Count Ratio
Success 20 100.0%
Failure 0 0.0%

FOR_ITER

specialization stats for FOR_ITER family
Kind Count Ratio
deferred

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

60 0.0%
hit

Specialized instructions that complete.

559,260 100.0%

LOAD_ATTR

specialization stats for LOAD_ATTR family
Kind Count Ratio
deferred

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

60 0.0%
hit

Specialized instructions that complete.

155,462,120 64.1%
miss

Specialized instructions that deopt.

86,899,180 35.9%
Success Count Ratio
Success 1,639,800 100.0%
Failure 20 0.0%

LOAD_GLOBAL

specialization stats for LOAD_GLOBAL family
Kind Count Ratio
hit

Specialized instructions that complete.

70,040,180 100.0%
Success Count Ratio
Success 100 100.0%
Failure 0 0.0%

STORE_ATTR

specialization stats for STORE_ATTR family
Kind Count Ratio
hit

Specialized instructions that complete.

74,729,520 85.2%
miss

Specialized instructions that deopt.

12,989,300 14.8%
Success Count Ratio
Success 490,160 100.0%
Failure 0 0.0%

STORE_SUBSCR

specialization stats for STORE_SUBSCR family
Kind Count Ratio
hit

Specialized instructions that complete.

602,880 100.0%

TO_BOOL

specialization stats for TO_BOOL family
Kind Count Ratio
deferred

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

60 0.0%
hit

Specialized instructions that complete.

106,448,080 100.0%
Success Count Ratio
Success 20 50.0%
Failure 20 50.0%
Failure kind Count Ratio
sequence 20 100.0%

UNPACK_SEQUENCE

specialization stats for UNPACK_SEQUENCE family
Kind Count Ratio
hit

Specialized instructions that complete.

60 75.0%
Success Count Ratio
Success 20 100.0%
Failure 0 0.0%

Specialization effectiveness

specialization effectiveness

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

Instructions Count Ratio
Basic

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

950,980,820 54.9%
Not specialized

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

6,001,940 0.3%
Specialized hits

Specialized instructions, e.g. LOAD_ATTR_MODULE that complete.

663,523,640 38.3%
Specialized misses

Specialized instructions, e.g. LOAD_ATTR_MODULE that deopt.

110,396,340 6.4%

Deferred by instruction

Breakdown of deferred (not specialized) instruction counts by family
Name Count Ratio
BINARY_OP 5,999,520 100.0%
TO_BOOL 60 0.0%
FOR_ITER 60 0.0%
LOAD_ATTR 60 0.0%
BINARY_SLICE 0 0.0%
STORE_SLICE 0 0.0%
CACHE 0 0.0%
BINARY_SUBSCR 0 0.0%
EXIT_INIT_CHECK 0 0.0%
GET_ITER 0 0.0%

Misses by instruction

Breakdown of misses (specialized deopts) instruction counts by family
Name Count Ratio
LOAD_ATTR_INSTANCE_VALUE 50,847,860 46.1%
LOAD_ATTR_METHOD_WITH_VALUES 36,051,320 32.7%
STORE_ATTR_INSTANCE_VALUE 12,989,300 11.8%
CALL_PY_EXACT_ARGS 10,506,720 9.5%
RESUME 1,140 0.0%
RESUME_CHECK 1,140 0.0%
CACHE 0 0.0%
EXIT_INIT_CHECK 0 0.0%
GET_ITER 0 0.0%
INTERPRETER_EXIT 0 0.0%

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.

Count Ratio
Calls to PyEval_EvalDefault 300 0.0%
Calls to Python functions inlined 115,526,700 100.0%
Calls via PyEval_EvalFrame (total) 300 0.0%
Calls via PyEval_EvalFrame (vector) 300 0.0%
Calls via PyEval_EvalFrame (generator) 0 0.0%
Calls via PyEval_EvalFrame (legacy) 0 0.0%
Calls via PyEval_EvalFrame (function vectorcall) 300 0.0%
Calls via PyEval_EvalFrame (build class) 0 0.0%
Calls via PyEval_EvalFrame (slot) 0 0.0%
Calls via PyEval_EvalFrame (function ex) 0 0.0%
Calls via PyEval_EvalFrame (api) 0 0.0%
Calls via PyEval_EvalFrame (method) 0 0.0%
Frame objects created 0 0.0%
Frames pushed 115,533,240 100.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.

Count Ratio
Allocations from freelist 13,603,260 96.0%
Frees to freelist 13,602,880
Allocations 571,340 4.0%
Allocations to 512 bytes 571,240 4.0%
Allocations to 4 kbytes 100 0.0%
Allocations over 4 kbytes 0 0.0%
Frees 562,610
Inline values 6,240
Interpreter mortal increfs 1,065,304,500 69.1%
Interpreter mortal decrefs 1,138,622,720 74.5%
Mortal increfs 76,454,540 5.0%
Mortal decrefs 17,291,332 1.1%
Interpreter immortal increfs 261,682,300 17.0%
Interpreter immortal decrefs 273,028,860 17.9%
Immortal increfs 138,248,240 9.0%
Immortal decrefs 98,491,968 6.4%
Materialize dict (on request) 0 0.0%
Materialize dict (new key) 0 0.0%
Materialize dict (too big) 0 0.0%
Materialize dict (str subclass) 0 0.0%
Method cache hits 112,343,800
Method cache misses 643,280
Method cache collisions 643,271
Method cache dunder hits 0
Method cache dunder misses 0

GC stats

GC collections and effectiveness

Collected/visits gives some measure of efficiency.

Generation Collections Objects collected Object visits Reachable from roots Not reachable from roots
0 0 0 0 0 0
1 0 0 0 0 0
2 0 0 0 0 0

Optimization (Tier 2) stats

statistics about the Tier 2 optimizer
Count Ratio
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.

8,240
Traces created

The number of traces that were successfully created.

100 1.2%
Trace stack overflow

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

0 0.0%
Trace stack underflow

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

8,180 99.3%
Trace too long

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

0 0.0%
Trace too short

A potential trace is abandoned because it it too short.

8,140 98.8%
Inner loop found

A trace is truncated because it has an inner loop

0 0.0%
Recursive call

A trace is truncated because it has a recursive call.

0 0.0%
Low confidence

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

0 0.0%
Executors invalidated

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

0 0.0%
Traces executed

The number of traces that were executed

157,893,800
Uops executed

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

1,797,281,160 1,138.3%
Count Ratio
Optimizer attempts

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

100
Optimizer successes

The number of traces that were successfully optimized.

100 100.0%
Optimizer no memory

The number of optimizations that failed due to no memory.

0 0.0%
Remove globals builtins changed

The builtins changed during optimization

0 0.0%
Remove globals incorrect keys

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

0 0.0%

Trace length histogram

trace length histogram
Range Count Ratio
<= 1 0 0.0%
<= 2 0 0.0%
<= 4 0 0.0%
<= 8 0 0.0%
<= 16 20 20.0%
<= 32 80 80.0%

Optimized trace length histogram

optimized trace length histogram
Range Count Ratio
<= 1 0 0.0%
<= 2 0 0.0%
<= 4 0 0.0%
<= 8 0 0.0%
<= 16 40 40.0%
<= 32 60 60.0%

Trace run length histogram

trace run length histogram
Range Count Ratio
<= 1 0 0.0%
<= 2 0 0.0%
<= 4 620 0.0%

Uop execution stats

uop execution stats
Name Count Self Cumulative Miss ratio
_GUARD_TYPE_VERSION 162,349,740 9.0% 9.0% 51.1%
_MAKE_WARM 159,526,280 8.9% 17.9%
_START_EXECUTOR 157,893,800 8.8% 26.7%
_EXIT_TRACE 126,342,500 7.0% 33.7%
_LOAD_FAST_0 121,594,120 6.8% 40.5%
_SET_IP 80,063,420 4.5% 44.9%
_TO_BOOL_BOOL 74,112,520 4.1% 49.1%
_CHECK_MANAGED_OBJECT_HAS_VALUES 71,045,360 4.0% 53.0%
_LOAD_ATTR_INSTANCE_VALUE_0 71,045,360 4.0% 57.0%
_COPY 51,530,800 2.9% 59.8%
_CHECK_VALIDITY 48,512,740 2.7% 62.5%
_GUARD_IS_FALSE_POP 40,215,440 2.2% 64.8% 18.0%
_POP_TOP 39,193,300 2.2% 67.0%
_TIER2_RESUME_CHECK 38,889,400 2.2% 69.1% 0.0%
_CHECK_FUNCTION 34,942,360 1.9% 71.1%
_GUARD_IS_NOT_NONE_POP 33,310,120 1.9% 72.9% 0.0%
_CHECK_FUNCTION_EXACT_ARGS 31,550,680 1.8% 74.7%
_CHECK_FUNCTION_VERSION 31,550,680 1.8% 76.4%
_CHECK_STACK_SPACE 31,550,680 1.8% 78.2%
_DYNAMIC_EXIT 31,550,680 1.8% 79.9%
_PUSH_FRAME 31,550,680 1.8% 81.7%
_SAVE_RETURN_OFFSET 31,550,680 1.8% 83.5%
_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT 31,394,100 1.7% 85.2%
_GUARD_KEYS_VERSION 31,394,100 1.7% 86.9%
_LOAD_ATTR_METHOD_WITH_VALUES 31,394,100 1.7% 88.7%
_CHECK_PERIODIC 27,859,320 1.6% 90.2%
_INIT_CALL_PY_EXACT_ARGS_0 25,565,740 1.4% 91.7%
_UNARY_NOT 24,257,160 1.3% 93.0%
_LOAD_FAST_2 15,450,140 0.9% 93.9%
_LOAD_FAST_1 15,355,940 0.9% 94.7%
_LOAD_ATTR 13,098,380 0.7% 95.5%
_GUARD_IS_TRUE_POP 11,315,360 0.6% 96.1% 24.7%
_BINARY_SUBSCR_LIST_INT 7,711,620 0.4% 96.5%
_LOAD_CONST_INLINE 7,711,620 0.4% 96.9%
_STORE_FAST_2 7,711,620 0.4% 97.4%
_INIT_CALL_PY_EXACT_ARGS_1 5,984,940 0.3% 97.7%
_LOAD_FAST_3 5,010,260 0.3% 98.0%
_GUARD_NOS_INT 3,350,880 0.2% 98.2%
_BINARY_OP_ADD_INT 3,307,920 0.2% 98.4%
_LOAD_SMALL_INT_1 3,307,920 0.2% 98.5%
_GUARD_NOT_EXHAUSTED_RANGE 2,233,920 0.1% 98.7% 25.0%
_ITER_CHECK_RANGE 2,233,920 0.1% 98.8%
_GUARD_DORV_NO_DICT 1,702,340 0.1% 98.9%
_STORE_ATTR_INSTANCE_VALUE 1,702,340 0.1% 99.0%
_SWAP 1,675,440 0.1% 99.1%
_COMPARE_OP_INT 1,675,440 0.1% 99.2%
_ITER_NEXT_RANGE 1,675,440 0.1% 99.3%
_LOAD_SMALL_INT 1,675,440 0.1% 99.4%
_STORE_FAST_5 1,675,440 0.1% 99.4%
_STORE_SUBSCR_LIST_INT 1,632,480 0.1% 99.5%
_BINARY_OP_SUBTRACT_INT 1,632,480 0.1% 99.6%
_GUARD_TOS_INT 1,632,480 0.1% 99.7%
_JUMP_TO_TOP 1,632,480 0.1% 99.8%
_LOAD_CONST_INLINE_BORROW 1,632,480 0.1% 99.9%
_LOAD_FAST_5 1,632,480 0.1% 100.0%
_CHECK_VALIDITY_AND_SET_IP 156,580 0.0% 100.0%
_GUARD_IS_NONE_POP 26,900 0.0% 100.0%
_DEOPT 620 0.0% 100.0%

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.

Pair Count Self Cumulative
_START_EXECUTOR _MAKE_WARM 157,893,800 8.8% 8.8%
_GUARD_TYPE_VERSION _EXIT_TRACE 83,031,540 4.6% 13.4%
_MAKE_WARM _GUARD_TYPE_VERSION 73,267,540 4.1% 17.5%
_LOAD_FAST_0 _GUARD_TYPE_VERSION 72,609,300 4.0% 21.5%
_CHECK_MANAGED_OBJECT_HAS_VALUES _LOAD_ATTR_INSTANCE_VALUE_0 71,045,360 4.0% 25.5%
_COPY _TO_BOOL_BOOL 49,855,360 2.8% 28.2%
_GUARD_TYPE_VERSION _CHECK_MANAGED_OBJECT_HAS_VALUES 47,897,200 2.7% 30.9%
_MAKE_WARM _SET_IP 40,957,700 2.3% 33.2%
_POP_TOP _LOAD_FAST_0 39,193,300 2.2% 35.4%
_MAKE_WARM _TIER2_RESUME_CHECK 38,889,400 2.2% 37.5%
_TO_BOOL_BOOL _GUARD_IS_FALSE_POP 38,540,000 2.1% 39.7%
_CHECK_FUNCTION_EXACT_ARGS _CHECK_STACK_SPACE 31,550,680 1.8% 41.4%
_CHECK_FUNCTION_VERSION _CHECK_FUNCTION_EXACT_ARGS 31,550,680 1.8% 43.2%
_PUSH_FRAME _DYNAMIC_EXIT 31,550,680 1.8% 44.9%
_SAVE_RETURN_OFFSET _PUSH_FRAME 31,550,680 1.8% 46.7%
_SET_IP _CHECK_FUNCTION_VERSION 31,394,100 1.7% 48.4%
_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT _GUARD_KEYS_VERSION 31,394,100 1.7% 50.2%
_GUARD_KEYS_VERSION _LOAD_ATTR_METHOD_WITH_VALUES 31,394,100 1.7% 51.9%
_GUARD_TYPE_VERSION _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT 31,394,100 1.7% 53.7%
_TIER2_RESUME_CHECK _LOAD_FAST_0 31,177,160 1.7% 55.4%
_SET_IP _CHECK_PERIODIC 27,859,320 1.6% 57.0%
_CHECK_PERIODIC _CHECK_VALIDITY 27,859,320 1.6% 58.5%
_CHECK_VALIDITY _LOAD_FAST_0 25,598,500 1.4% 59.9%
_LOAD_FAST_0 _GUARD_IS_NOT_NONE_POP 25,598,500 1.4% 61.4%
_CHECK_FUNCTION _LOAD_FAST_0 25,598,260 1.4% 62.8%
_GUARD_IS_NOT_NONE_POP _CHECK_FUNCTION 25,598,260 1.4% 64.2%
_LOAD_ATTR_INSTANCE_VALUE_0 _COPY 25,598,200 1.4% 65.6%
_CHECK_STACK_SPACE _INIT_CALL_PY_EXACT_ARGS_0 25,565,740 1.4% 67.1%
_INIT_CALL_PY_EXACT_ARGS_0 _SAVE_RETURN_OFFSET 25,565,740 1.4% 68.5%
_LOAD_ATTR_METHOD_WITH_VALUES _SET_IP 25,409,160 1.4% 69.9%
_UNARY_NOT _COPY 24,257,160 1.3% 71.3%
_TO_BOOL_BOOL _UNARY_NOT 24,257,160 1.3% 72.6%
_GUARD_IS_FALSE_POP _POP_TOP 24,256,780 1.3% 74.0%
_LOAD_FAST_0 _CHECK_MANAGED_OBJECT_HAS_VALUES 19,840,240 1.1% 75.1%
_LOAD_ATTR_INSTANCE_VALUE_0 _EXIT_TRACE 14,377,880 0.8% 75.9%
_GUARD_IS_FALSE_POP _EXIT_TRACE 14,326,180 0.8% 76.7%
_SET_IP _LOAD_ATTR 13,098,380 0.7% 77.4%
_CHECK_VALIDITY _TO_BOOL_BOOL 12,941,800 0.7% 78.1%
_LOAD_ATTR _CHECK_VALIDITY 12,941,800 0.7% 78.8%
_TO_BOOL_BOOL _GUARD_IS_TRUE_POP 11,315,360 0.6% 79.5%
_LOAD_ATTR_INSTANCE_VALUE_0 _TO_BOOL_BOOL 11,315,360 0.6% 80.1%
_GUARD_IS_TRUE_POP _POP_TOP 8,524,880 0.5% 80.6%
_LOAD_FAST_1 _SET_IP 8,270,100 0.5% 81.0%
_BINARY_SUBSCR_LIST_INT _CHECK_VALIDITY 7,711,620 0.4% 81.4%
_SET_IP _BINARY_SUBSCR_LIST_INT 7,711,620 0.4% 81.9%
_CHECK_FUNCTION _LOAD_CONST_INLINE 7,711,620 0.4% 82.3%
_CHECK_VALIDITY _STORE_FAST_2 7,711,620 0.4% 82.7%
_GUARD_IS_NOT_NONE_POP _LOAD_FAST_2 7,711,620 0.4% 83.2%
_LOAD_ATTR_INSTANCE_VALUE_0 _LOAD_FAST_1 7,711,620 0.4% 83.6%
_LOAD_CONST_INLINE _GUARD_TYPE_VERSION 7,711,620 0.4% 84.0%
_LOAD_FAST_2 _EXIT_TRACE 7,711,620 0.4% 84.4%
_LOAD_FAST_2 _GUARD_IS_NOT_NONE_POP 7,711,620 0.4% 84.9%
_STORE_FAST_2 _LOAD_FAST_2 7,711,620 0.4% 85.3%
_TIER2_RESUME_CHECK _CHECK_FUNCTION 7,711,620 0.4% 85.7%
_LOAD_FAST_1 _GUARD_TYPE_VERSION 7,058,940 0.4% 86.1%
_MAKE_WARM _POP_TOP 6,411,640 0.4% 86.5%
_CHECK_STACK_SPACE _INIT_CALL_PY_EXACT_ARGS_1 5,984,940 0.3% 86.8%
_INIT_CALL_PY_EXACT_ARGS_1 _SAVE_RETURN_OFFSET 5,984,940 0.3% 87.2%
_LOAD_ATTR_METHOD_WITH_VALUES _LOAD_FAST_1 5,984,940 0.3% 87.5%
_LOAD_ATTR_INSTANCE_VALUE_0 _SET_IP 5,426,460 0.3% 87.8%
_LOAD_FAST_0 _EXIT_TRACE 3,519,180 0.2% 88.0%
_LOAD_FAST_3 _CHECK_MANAGED_OBJECT_HAS_VALUES 3,307,920 0.2% 88.2%
_GUARD_IS_TRUE_POP _EXIT_TRACE 2,790,480 0.2% 88.3%
_CHECK_VALIDITY _ITER_CHECK_RANGE 2,233,920 0.1% 88.4%
_ITER_CHECK_RANGE _GUARD_NOT_EXHAUSTED_RANGE 2,233,920 0.1% 88.6%
_GUARD_DORV_NO_DICT _STORE_ATTR_INSTANCE_VALUE 1,702,340 0.1% 88.7%
_COPY _GUARD_TYPE_VERSION 1,675,440 0.1% 88.8%
_SWAP _GUARD_DORV_NO_DICT 1,675,440 0.1% 88.9%
_BINARY_OP_ADD_INT _SWAP 1,675,440 0.1% 88.9%
_COMPARE_OP_INT _GUARD_IS_FALSE_POP 1,675,440 0.1% 89.0%
_GUARD_NOS_INT _BINARY_OP_ADD_INT 1,675,440 0.1% 89.1%
_GUARD_NOS_INT _COMPARE_OP_INT 1,675,440 0.1% 89.2%
_GUARD_NOT_EXHAUSTED_RANGE _ITER_NEXT_RANGE 1,675,440 0.1% 89.3%
_ITER_NEXT_RANGE _STORE_FAST_5 1,675,440 0.1% 89.4%
_LOAD_ATTR_INSTANCE_VALUE_0 _LOAD_SMALL_INT 1,675,440 0.1% 89.5%
_LOAD_ATTR_INSTANCE_VALUE_0 _LOAD_SMALL_INT_1 1,675,440 0.1% 89.6%
_LOAD_FAST_3 _COPY 1,675,440 0.1% 89.7%
_LOAD_SMALL_INT _GUARD_NOS_INT 1,675,440 0.1% 89.8%
_LOAD_SMALL_INT_1 _GUARD_NOS_INT 1,675,440 0.1% 89.9%
_STORE_ATTR_INSTANCE_VALUE _LOAD_FAST_3 1,675,440 0.1% 90.0%
_STORE_FAST_5 _LOAD_FAST_3 1,675,440 0.1% 90.1%
_STORE_SUBSCR_LIST_INT _JUMP_TO_TOP 1,632,480 0.1% 90.2%
_BINARY_OP_ADD_INT _LOAD_SMALL_INT_1 1,632,480 0.1% 90.2%
_BINARY_OP_SUBTRACT_INT _LOAD_FAST_1 1,632,480 0.1% 90.3%
_CHECK_FUNCTION _LOAD_CONST_INLINE_BORROW 1,632,480 0.1% 90.4%
_GUARD_IS_FALSE_POP _CHECK_FUNCTION 1,632,480 0.1% 90.5%
_GUARD_TOS_INT _BINARY_OP_ADD_INT 1,632,480 0.1% 90.6%
_JUMP_TO_TOP _MAKE_WARM 1,632,480 0.1% 90.7%
_LOAD_ATTR_INSTANCE_VALUE_0 _GUARD_TOS_INT 1,632,480 0.1% 90.8%
_LOAD_ATTR_INSTANCE_VALUE_0 _LOAD_FAST_5 1,632,480 0.1% 90.9%
_LOAD_CONST_INLINE_BORROW _LOAD_FAST_3 1,632,480 0.1% 91.0%
_LOAD_FAST_5 _STORE_SUBSCR_LIST_INT 1,632,480 0.1% 91.1%
_LOAD_SMALL_INT_1 _BINARY_OP_SUBTRACT_INT 1,632,480 0.1% 91.2%
_GUARD_NOT_EXHAUSTED_RANGE _EXIT_TRACE 558,480 0.0% 91.2%
_CHECK_VALIDITY_AND_SET_IP _CHECK_FUNCTION_VERSION 156,580 0.0% 91.2%
_LOAD_ATTR _CHECK_VALIDITY_AND_SET_IP 156,580 0.0% 91.2%
_CHECK_VALIDITY _LOAD_FAST_3 26,900 0.0% 91.2%
_GUARD_IS_NONE_POP _LOAD_FAST_0 26,900 0.0% 91.2%
_GUARD_TYPE_VERSION _GUARD_DORV_NO_DICT 26,900 0.0% 91.2%
_LOAD_FAST_0 _LOAD_FAST_2 26,900 0.0% 91.2%

Unsupported opcodes

unsupported opcodes

Optimizer errored out with opcode

Optimization stopped after encountering this opcode

Rare events

Counts of rare/unlikely events
Event Count
set class

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

0
set bases

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

0
set eval frame func

Setting the PEP 523 frame eval function _PyInterpreterState_SetFrameEvalFunc()

0
builtin dict

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

0
func modification

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

0
watched dict modification

A watched dict has been modified

0
watched globals modification

A watched globals() dict has been modified

0

Meta stats

Meta statistics
Count
Number of data files 20

Stats gathered on: 2024-12-15