Skip to content

Latest commit

 

History

History
8050 lines (7430 loc) · 151 KB

bm-20240615-azure-x86_64-python-a19bb261a327e1008f21-3.13.0b2+-a19bb26-pystats-richards_super.md

File metadata and controls

8050 lines (7430 loc) · 151 KB

Pystats results

  • benchmark: richards_super
  • fork: python
  • ref: a19bb261a327e1008f219b62f6465941c981899b
  • commit hash: a19bb26
  • commit date: 2024-06-15T19:10:50+00: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 204,938,260 22.4% 22.4%
LOAD_ATTR_INSTANCE_VALUE 69,566,300 7.6% 29.9% 24.4%
RETURN_VALUE 67,487,080 7.4% 37.3%
STORE_ATTR_INSTANCE_VALUE 50,358,340 5.5% 42.8% 27.8%
STORE_FAST 48,436,000 5.3% 48.1%
LOAD_CONST 41,459,740 4.5% 52.6%
CALL_PY_EXACT_ARGS 40,462,820 4.4% 57.0% 17.3%
RESUME_CHECK 40,335,080 4.4% 61.4%
TO_BOOL_BOOL 35,280,840 3.8% 65.3%
LOAD_FAST_LOAD_FAST 33,885,420 3.7% 69.0%
LOAD_ATTR_METHOD_WITH_VALUES 29,952,000 3.3% 72.2% 26.3%
ENTER_EXECUTOR 28,684,900 3.1% 75.4%
POP_JUMP_IF_FALSE 27,068,480 3.0% 78.3%
LOAD_GLOBAL_MODULE 23,342,100 2.5% 80.9%
POP_JUMP_IF_NOT_NONE 22,024,420 2.4% 83.3%
LOAD_GLOBAL_BUILTIN 21,053,720 2.3% 85.6%
POP_TOP 17,495,580 1.9% 87.5%
POP_JUMP_IF_NONE 14,267,420 1.6% 89.0%
COMPARE_OP_INT 10,677,020 1.2% 90.2%
RETURN_CONST 10,531,840 1.1% 91.3%
POP_JUMP_IF_TRUE 10,529,300 1.1% 92.5%
LOAD_DEREF 10,527,520 1.1% 93.6%
COPY_FREE_VARS 10,527,440 1.1% 94.8%
LOAD_SUPER_ATTR_METHOD 10,527,200 1.1% 95.9%
CALL_ISINSTANCE 10,526,320 1.1% 97.1%
COPY 4,307,540 0.5% 97.5%
SWAP 4,287,300 0.5% 98.0%
JUMP_FORWARD 4,283,520 0.5% 98.5%
BINARY_OP 4,001,820 0.4% 98.9%
BINARY_OP_ADD_INT 3,720,720 0.4% 99.3%
BINARY_SUBSCR_LIST_INT 3,113,900 0.3% 99.7%
BINARY_OP_SUBTRACT_INT 1,946,600 0.2% 99.9%
FOR_ITER_RANGE 373,140 0.0% 99.9%
GET_ITER 372,560 0.0% 100.0%
STORE_SUBSCR_LIST_INT 347,560 0.0% 100.0%
NOP 15,180 0.0% 100.0%
UNARY_NOT 9,820 0.0% 100.0%
STORE_ATTR 4,880 0.0% 100.0%
LOAD_ATTR 3,680 0.0% 100.0%
LOAD_GLOBAL 3,680 0.0% 100.0%
EXIT_INIT_CHECK 3,640 0.0% 100.0%
CALL_ALLOC_AND_ENTER_INIT 3,640 0.0% 100.0%
CALL 3,200 0.0% 100.0%
BUILD_LIST 1,280 0.0% 100.0%
JUMP_BACKWARD 1,000 0.0% 100.0%
RESUME 760 0.0% 100.0%
INTERPRETER_EXIT 680 0.0% 100.0%
TO_BOOL 600 0.0% 100.0%
PUSH_NULL 480 0.0% 100.0%
EXTENDED_ARG 480 0.0% 100.0%
COMPARE_OP 440 0.0% 100.0%
LOAD_SUPER_ATTR 320 0.0% 100.0%
CALL_NON_PY_GENERAL 320 0.0% 100.0%
CALL_BUILTIN_CLASS 200 0.0% 100.0%
FOR_ITER 120 0.0% 100.0%
LOAD_ATTR_MODULE 120 0.0% 100.0%
BINARY_SUBSCR 80 0.0% 100.0%
STORE_SUBSCR 80 0.0% 100.0%
CALL_FUNCTION_EX 80 0.0% 100.0%
BINARY_OP_SUBTRACT_FLOAT 60 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 43,214,680 4.7% 4.7%
STORE_FAST LOAD_FAST 35,904,700 3.9% 8.6%
LOAD_FAST STORE_ATTR_INSTANCE_VALUE 33,002,140 3.6% 12.2%
CALL_PY_EXACT_ARGS RESUME_CHECK 29,804,180 3.3% 15.5%
LOAD_FAST LOAD_ATTR_METHOD_WITH_VALUES 29,795,400 3.3% 18.7%
STORE_ATTR_INSTANCE_VALUE LOAD_FAST 27,968,520 3.1% 21.8%
RETURN_VALUE RETURN_VALUE 23,295,480 2.5% 24.3%
RETURN_VALUE TO_BOOL_BOOL 23,233,060 2.5% 26.9%
LOAD_CONST LOAD_FAST 21,758,120 2.4% 29.2%
POP_JUMP_IF_NOT_NONE LOAD_FAST 18,770,160 2.0% 31.3%
LOAD_FAST POP_JUMP_IF_NOT_NONE 18,274,480 2.0% 33.3%
RESUME_CHECK LOAD_FAST 17,379,060 1.9% 35.2%
LOAD_ATTR_INSTANCE_VALUE STORE_FAST 16,562,120 1.8% 37.0%
POP_JUMP_IF_FALSE LOAD_FAST 15,132,080 1.7% 38.6%
ENTER_EXECUTOR RETURN_VALUE 14,718,980 1.6% 40.2%
LOAD_FAST POP_JUMP_IF_NONE 14,267,420 1.6% 41.8%
LOAD_FAST LOAD_GLOBAL_MODULE 13,778,720 1.5% 43.3%
LOAD_FAST RETURN_VALUE 13,661,020 1.5% 44.8%
POP_TOP LOAD_FAST 13,400,940 1.5% 46.2%
LOAD_ATTR_INSTANCE_VALUE RETURN_VALUE 12,933,060 1.4% 47.7%
LOAD_FAST_LOAD_FAST STORE_ATTR_INSTANCE_VALUE 12,800,880 1.4% 49.0%
TO_BOOL_BOOL ENTER_EXECUTOR 12,704,120 1.4% 50.4%
LOAD_ATTR_INSTANCE_VALUE CALL_PY_EXACT_ARGS 12,422,760 1.4% 51.8%
RETURN_VALUE STORE_FAST 12,153,460 1.3% 53.1%
TO_BOOL_BOOL POP_JUMP_IF_FALSE 12,037,740 1.3% 54.4%
LOAD_ATTR_INSTANCE_VALUE LOAD_FAST 10,691,860 1.2% 55.6%
COMPARE_OP_INT POP_JUMP_IF_FALSE 10,677,020 1.2% 56.8%
LOAD_ATTR_METHOD_WITH_VALUES LOAD_FAST_LOAD_FAST 10,555,020 1.2% 57.9%
LOAD_FAST_LOAD_FAST CALL_PY_EXACT_ARGS 10,554,980 1.2% 59.1%
LOAD_FAST STORE_FAST 10,541,980 1.1% 60.2%
POP_JUMP_IF_NONE ENTER_EXECUTOR 10,531,000 1.1% 61.4%
STORE_ATTR_INSTANCE_VALUE RETURN_CONST 10,530,200 1.1% 62.5%
TO_BOOL_BOOL POP_JUMP_IF_TRUE 10,529,200 1.1% 63.7%
RESUME_CHECK LOAD_FAST_LOAD_FAST 10,527,640 1.1% 64.8%
RETURN_CONST POP_TOP 10,527,520 1.1% 66.0%
LOAD_DEREF LOAD_FAST 10,527,360 1.1% 67.1%
COPY_FREE_VARS RESUME_CHECK 10,527,260 1.1% 68.3%
LOAD_GLOBAL_BUILTIN LOAD_DEREF 10,527,200 1.1% 69.4%
LOAD_SUPER_ATTR_METHOD LOAD_FAST_LOAD_FAST 10,527,060 1.1% 70.5%
LOAD_FAST LOAD_SUPER_ATTR_METHOD 10,527,040 1.1% 71.7%
LOAD_GLOBAL_BUILTIN LOAD_FAST 10,526,520 1.1% 72.8%
CALL_PY_EXACT_ARGS COPY_FREE_VARS 10,526,380 1.1% 74.0%
LOAD_FAST_LOAD_FAST LOAD_ATTR_INSTANCE_VALUE 10,526,360 1.1% 75.1%
POP_JUMP_IF_TRUE LOAD_GLOBAL_BUILTIN 10,526,240 1.1% 76.3%
STORE_FAST LOAD_GLOBAL_BUILTIN 10,526,240 1.1% 77.4%
CALL_ISINSTANCE TO_BOOL_BOOL 10,526,240 1.1% 78.6%
LOAD_GLOBAL_MODULE CALL_ISINSTANCE 10,526,240 1.1% 79.7%
ENTER_EXECUTOR LOAD_ATTR_INSTANCE_VALUE 9,588,160 1.0% 80.8%
STORE_ATTR_INSTANCE_VALUE LOAD_CONST 9,355,100 1.0% 81.8%
RESUME_CHECK LOAD_CONST 9,312,660 1.0% 82.8%
LOAD_ATTR_METHOD_WITH_VALUES CALL_PY_EXACT_ARGS 8,943,100 1.0% 83.8%
LOAD_ATTR_METHOD_WITH_VALUES LOAD_FAST 8,704,900 0.9% 84.7%
LOAD_ATTR_INSTANCE_VALUE LOAD_CONST 8,658,520 0.9% 85.7%
RETURN_VALUE POP_TOP 6,939,080 0.8% 86.4%
LOAD_FAST CALL_PY_EXACT_ARGS 6,808,960 0.7% 87.2%
POP_JUMP_IF_FALSE LOAD_CONST 6,807,680 0.7% 87.9%
LOAD_CONST STORE_FAST 6,806,560 0.7% 88.7%
LOAD_GLOBAL_MODULE COMPARE_OP_INT 5,482,120 0.6% 89.3%
ENTER_EXECUTOR POP_JUMP_IF_FALSE 4,353,340 0.5% 89.7%
COPY LOAD_ATTR_INSTANCE_VALUE 4,287,100 0.5% 90.2%
SWAP STORE_ATTR_INSTANCE_VALUE 4,287,100 0.5% 90.7%
JUMP_FORWARD LOAD_FAST 4,097,280 0.4% 91.1%
POP_TOP JUMP_FORWARD 4,092,320 0.4% 91.6%
LOAD_CONST BINARY_OP 3,998,640 0.4% 92.0%
LOAD_ATTR_INSTANCE_VALUE POP_JUMP_IF_NOT_NONE 3,749,900 0.4% 92.4%
POP_JUMP_IF_NONE LOAD_FAST 3,720,860 0.4% 92.8%
LOAD_CONST COMPARE_OP_INT 3,572,560 0.4% 93.2%
LOAD_CONST BINARY_OP_ADD_INT 3,374,020 0.4% 93.6%
LOAD_FAST ENTER_EXECUTOR 3,334,880 0.4% 93.9%
RESUME_CHECK LOAD_GLOBAL_MODULE 3,114,580 0.3% 94.3%
LOAD_FAST BINARY_SUBSCR_LIST_INT 3,113,860 0.3% 94.6%
POP_JUMP_IF_FALSE RETURN_VALUE 2,869,080 0.3% 94.9%
LOAD_FAST COPY 2,773,680 0.3% 95.2%
BINARY_OP LOAD_CONST 2,398,580 0.3% 95.5%
LOAD_ATTR_INSTANCE_VALUE LOAD_GLOBAL_MODULE 2,232,560 0.2% 95.7%
LOAD_CONST BINARY_OP_SUBTRACT_INT 1,946,560 0.2% 96.0%
BINARY_OP_ADD_INT SWAP 1,886,120 0.2% 96.2%
RETURN_VALUE LOAD_FAST 1,863,200 0.2% 96.4%
STORE_ATTR_INSTANCE_VALUE LOAD_GLOBAL_MODULE 1,862,260 0.2% 96.6%
LOAD_GLOBAL_MODULE LOAD_ATTR_INSTANCE_VALUE 1,628,100 0.2% 96.7%
BINARY_SUBSCR_LIST_INT STORE_FAST 1,625,920 0.2% 96.9%
LOAD_ATTR_INSTANCE_VALUE COMPARE_OP_INT 1,622,120 0.2% 97.1%
STORE_FAST LOAD_CONST 1,600,000 0.2% 97.3%
BINARY_OP_SUBTRACT_INT SWAP 1,599,980 0.2% 97.4%
LOAD_GLOBAL_MODULE CALL_PY_EXACT_ARGS 1,599,880 0.2% 97.6%
LOAD_ATTR_METHOD_WITH_VALUES LOAD_GLOBAL_MODULE 1,599,760 0.2% 97.8%
LOAD_GLOBAL_MODULE COPY 1,513,580 0.2% 98.0%
POP_JUMP_IF_NOT_NONE LOAD_FAST_LOAD_FAST 1,507,160 0.2% 98.1%
POP_JUMP_IF_FALSE ENTER_EXECUTOR 1,503,420 0.2% 98.3%
LOAD_GLOBAL_MODULE TO_BOOL_BOOL 1,491,420 0.2% 98.5%
LOAD_FAST LOAD_CONST 1,488,400 0.2% 98.6%
BINARY_OP_ADD_INT LOAD_FAST 1,487,980 0.2% 98.8%
BINARY_SUBSCR_LIST_INT LOAD_FAST 1,487,980 0.2% 98.9%
POP_JUMP_IF_NOT_NONE LOAD_CONST 1,487,040 0.2% 99.1%
BINARY_OP SWAP 801,200 0.1% 99.2%
BINARY_OP LOAD_FAST 800,040 0.1% 99.3%
POP_JUMP_IF_FALSE LOAD_GLOBAL_MODULE 720,060 0.1% 99.4%
STORE_ATTR_INSTANCE_VALUE LOAD_FAST_LOAD_FAST 377,780 0.0% 99.4%
FOR_ITER_RANGE STORE_FAST 372,820 0.0% 99.4%
GET_ITER FOR_ITER_RANGE 372,360 0.0% 99.5%

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 420 61.8%
RESUME 140 20.6%
COPY_FREE_VARS 120 17.6%

BINARY_SUBSCR

Successors and predecessors for BINARY_SUBSCR
Predecessors Count Percentage
LOAD_FAST 80 100.0%
Successors Count Percentage
BINARY_SUBSCR_LIST_INT 40 50.0%
LOAD_FAST 20 25.0%
STORE_FAST 20 25.0%

EXIT_INIT_CHECK

Successors and predecessors for EXIT_INIT_CHECK
Predecessors Count Percentage
RETURN_CONST 3,640 100.0%
Successors Count Percentage
RETURN_VALUE 3,640 100.0%

GET_ITER

Successors and predecessors for GET_ITER
Predecessors Count Percentage
LOAD_GLOBAL_MODULE 372,300 99.9%
CALL_BUILTIN_CLASS 140 0.0%
LOAD_FAST 80 0.0%
CALL 20 0.0%
LOAD_GLOBAL 20 0.0%
Successors Count Percentage
FOR_ITER_RANGE 372,360 99.9%
EXTENDED_ARG 160 0.0%
FOR_ITER 40 0.0%

INTERPRETER_EXIT

Successors and predecessors for INTERPRETER_EXIT
Predecessors Count Percentage
RETURN_CONST 680 100.0%

NOP

Successors and predecessors for NOP
Predecessors Count Percentage
POP_JUMP_IF_FALSE 13,820 91.0%
ENTER_EXECUTOR 1,280 8.4%
POP_TOP 80 0.5%
Successors Count Percentage
LOAD_FAST 15,100 99.5%
LOAD_DEREF 80 0.5%

POP_TOP

Successors and predecessors for POP_TOP
Predecessors Count Percentage
RETURN_CONST 10,527,520 60.2%
RETURN_VALUE 6,939,080 39.7%
POP_JUMP_IF_FALSE 21,900 0.1%
ENTER_EXECUTOR 3,820 0.0%
POP_JUMP_IF_TRUE 2,880 0.0%
Successors Count Percentage
LOAD_FAST 13,400,940 76.6%
JUMP_FORWARD 4,092,320 23.4%
RETURN_CONST 960 0.0%
LOAD_GLOBAL_MODULE 720 0.0%
LOAD_GLOBAL 240 0.0%

PUSH_NULL

Successors and predecessors for PUSH_NULL
Predecessors Count Percentage
LOAD_FAST 320 66.7%
LOAD_DEREF 80 16.7%
LOAD_ATTR_MODULE 60 12.5%
LOAD_ATTR 20 4.2%
Successors Count Percentage
CALL_NON_PY_GENERAL 240 50.0%
CALL 160 33.3%
LOAD_FAST 80 16.7%

RETURN_VALUE

Successors and predecessors for RETURN_VALUE
Predecessors Count Percentage
RETURN_VALUE 23,295,480 34.5%
ENTER_EXECUTOR 14,718,980 21.8%
LOAD_FAST 13,661,020 20.2%
LOAD_ATTR_INSTANCE_VALUE 12,933,060 19.2%
POP_JUMP_IF_FALSE 2,869,080 4.3%
Successors Count Percentage
RETURN_VALUE 23,295,480 34.5%
TO_BOOL_BOOL 23,233,060 34.4%
STORE_FAST 12,153,460 18.0%
POP_TOP 6,939,080 10.3%
LOAD_FAST 1,863,200 2.8%

STORE_SUBSCR

Successors and predecessors for STORE_SUBSCR
Predecessors Count Percentage
LOAD_FAST 80 100.0%
Successors Count Percentage
STORE_SUBSCR_LIST_INT 40 50.0%
JUMP_BACKWARD 20 25.0%
LOAD_CONST 20 25.0%

TO_BOOL

Successors and predecessors for TO_BOOL
Predecessors Count Percentage
COPY 160 26.7%
RETURN_VALUE 80 13.3%
CALL 80 13.3%
CALL_ISINSTANCE 80 13.3%
LOAD_GLOBAL 60 10.0%
Successors Count Percentage
TO_BOOL_BOOL 300 50.0%
POP_JUMP_IF_FALSE 160 26.7%
POP_JUMP_IF_TRUE 100 16.7%
UNARY_NOT 40 6.7%

UNARY_NOT

Successors and predecessors for UNARY_NOT
Predecessors Count Percentage
TO_BOOL_BOOL 9,780 99.6%
TO_BOOL 40 0.4%
Successors Count Percentage
RETURN_VALUE 5,660 57.6%
COPY 4,160 42.4%

BINARY_OP

Successors and predecessors for BINARY_OP
Predecessors Count Percentage
LOAD_CONST 3,998,640 99.9%
BINARY_OP 1,820 0.0%
LOAD_GLOBAL_MODULE 1,260 0.0%
LOAD_FAST 40 0.0%
LOAD_ATTR 20 0.0%
Successors Count Percentage
LOAD_CONST 2,398,580 59.9%
SWAP 801,200 20.0%
LOAD_FAST 800,040 20.0%
BINARY_OP 1,820 0.0%
BINARY_OP_ADD_INT 100 0.0%

BUILD_LIST

Successors and predecessors for BUILD_LIST
Predecessors Count Percentage
LOAD_CONST 1,280 100.0%
Successors Count Percentage
LOAD_GLOBAL_MODULE 1,240 96.9%
LOAD_GLOBAL 40 3.1%

CALL

Successors and predecessors for CALL
Predecessors Count Percentage
LOAD_GLOBAL 540 16.9%
LOAD_GLOBAL_MODULE 540 16.9%
LOAD_ATTR 500 15.6%
LOAD_FAST 480 15.0%
LOAD_ATTR_METHOD_WITH_VALUES 400 12.5%
Successors Count Percentage
CALL_PY_EXACT_ARGS 880 27.5%
CALL_ALLOC_AND_ENTER_INIT 520 16.2%
RESUME 440 13.8%
RESUME_CHECK 420 13.1%
STORE_FAST 200 6.2%

CALL_FUNCTION_EX

Successors and predecessors for CALL_FUNCTION_EX
Predecessors Count Percentage
LOAD_FAST 80 100.0%
Successors Count Percentage
COPY_FREE_VARS 80 100.0%

COMPARE_OP

Successors and predecessors for COMPARE_OP
Predecessors Count Percentage
LOAD_CONST 240 54.5%
LOAD_GLOBAL 60 13.6%
LOAD_GLOBAL_MODULE 60 13.6%
LOAD_ATTR 40 9.1%
LOAD_ATTR_INSTANCE_VALUE 40 9.1%
Successors Count Percentage
POP_JUMP_IF_FALSE 220 50.0%
COMPARE_OP_INT 220 50.0%

COPY

Successors and predecessors for COPY
Predecessors Count Percentage
LOAD_FAST 2,773,680 64.4%
LOAD_GLOBAL_MODULE 1,513,580 35.1%
LOAD_ATTR_INSTANCE_VALUE 16,020 0.4%
UNARY_NOT 4,160 0.1%
LOAD_ATTR 60 0.0%
Successors Count Percentage
LOAD_ATTR_INSTANCE_VALUE 4,287,100 99.5%
TO_BOOL_BOOL 20,080 0.5%
LOAD_ATTR 200 0.0%
TO_BOOL 160 0.0%

COPY_FREE_VARS

Successors and predecessors for COPY_FREE_VARS
Predecessors Count Percentage
CALL_PY_EXACT_ARGS 10,526,380 100.0%
CALL_ALLOC_AND_ENTER_INIT 840 0.0%
CACHE 120 0.0%
CALL_FUNCTION_EX 80 0.0%
CALL 20 0.0%
Successors Count Percentage
RESUME_CHECK 10,527,260 100.0%
RESUME 180 0.0%

ENTER_EXECUTOR

Successors and predecessors for ENTER_EXECUTOR
Predecessors Count Percentage
TO_BOOL_BOOL 12,704,120 44.3%
POP_JUMP_IF_NONE 10,531,000 36.7%
LOAD_FAST 3,334,880 11.6%
POP_JUMP_IF_FALSE 1,503,420 5.2%
STORE_SUBSCR_LIST_INT 346,300 1.2%
Successors Count Percentage
RETURN_VALUE 14,718,980 51.3%
LOAD_ATTR_INSTANCE_VALUE 9,588,160 33.4%
POP_JUMP_IF_FALSE 4,353,340 15.2%
LOAD_ATTR_METHOD_WITH_VALUES 6,380 0.0%
ENTER_EXECUTOR 5,120 0.0%

EXTENDED_ARG

Successors and predecessors for EXTENDED_ARG
Predecessors Count Percentage
GET_ITER 160 33.3%
JUMP_BACKWARD 160 33.3%
POP_JUMP_IF_FALSE 160 33.3%
Successors Count Percentage
FOR_ITER_RANGE 280 58.3%
JUMP_BACKWARD 160 33.3%
FOR_ITER 40 8.3%

FOR_ITER

Successors and predecessors for FOR_ITER
Predecessors Count Percentage
GET_ITER 40 33.3%
EXTENDED_ARG 40 33.3%
JUMP_BACKWARD 40 33.3%
Successors Count Percentage
STORE_FAST 60 50.0%
FOR_ITER_RANGE 60 50.0%

JUMP_BACKWARD

Successors and predecessors for JUMP_BACKWARD
Predecessors Count Percentage
POP_JUMP_IF_NONE 340 34.0%
STORE_SUBSCR_LIST_INT 320 32.0%
POP_TOP 160 16.0%
EXTENDED_ARG 160 16.0%
STORE_SUBSCR 20 2.0%
Successors Count Percentage
FOR_ITER_RANGE 440 44.0%
LOAD_GLOBAL_MODULE 300 30.0%
EXTENDED_ARG 160 16.0%
FOR_ITER 40 4.0%
POP_TOP 20 2.0%

JUMP_FORWARD

Successors and predecessors for JUMP_FORWARD
Predecessors Count Percentage
POP_TOP 4,092,320 95.5%
STORE_FAST 191,200 4.5%
Successors Count Percentage
LOAD_FAST 4,097,280 95.7%
LOAD_FAST_LOAD_FAST 186,240 4.3%

LOAD_ATTR

Successors and predecessors for LOAD_ATTR
Predecessors Count Percentage
LOAD_FAST 2,880 78.3%
COPY 200 5.4%
LOAD_GLOBAL 160 4.3%
LOAD_GLOBAL_MODULE 160 4.3%
RETURN_VALUE 120 3.3%
Successors Count Percentage
LOAD_ATTR_INSTANCE_VALUE 1,100 29.9%
LOAD_ATTR_METHOD_WITH_VALUES 700 19.0%
CALL 500 13.6%
LOAD_FAST 440 12.0%
LOAD_CONST 220 6.0%

LOAD_CONST

Successors and predecessors for LOAD_CONST
Predecessors Count Percentage
STORE_ATTR_INSTANCE_VALUE 9,355,100 22.6%
RESUME_CHECK 9,312,660 22.5%
LOAD_ATTR_INSTANCE_VALUE 8,658,520 20.9%
POP_JUMP_IF_FALSE 6,807,680 16.4%
BINARY_OP 2,398,580 5.8%
Successors Count Percentage
LOAD_FAST 21,758,120 52.5%
STORE_FAST 6,806,560 16.4%
BINARY_OP 3,998,640 9.6%
COMPARE_OP_INT 3,572,560 8.6%
BINARY_OP_ADD_INT 3,374,020 8.1%

LOAD_DEREF

Successors and predecessors for LOAD_DEREF
Predecessors Count Percentage
LOAD_GLOBAL_BUILTIN 10,527,200 100.0%
LOAD_GLOBAL 160 0.0%
NOP 80 0.0%
STORE_FAST 80 0.0%
Successors Count Percentage
LOAD_FAST 10,527,360 100.0%
PUSH_NULL 80 0.0%
STORE_FAST 80 0.0%

LOAD_FAST

Successors and predecessors for LOAD_FAST
Predecessors Count Percentage
STORE_FAST 35,904,700 17.5%
STORE_ATTR_INSTANCE_VALUE 27,968,520 13.6%
LOAD_CONST 21,758,120 10.6%
POP_JUMP_IF_NOT_NONE 18,770,160 9.2%
RESUME_CHECK 17,379,060 8.5%
Successors Count Percentage
LOAD_ATTR_INSTANCE_VALUE 43,214,680 21.1%
STORE_ATTR_INSTANCE_VALUE 33,002,140 16.1%
LOAD_ATTR_METHOD_WITH_VALUES 29,795,400 14.5%
POP_JUMP_IF_NOT_NONE 18,274,480 8.9%
POP_JUMP_IF_NONE 14,267,420 7.0%

LOAD_FAST_LOAD_FAST

Successors and predecessors for LOAD_FAST_LOAD_FAST
Predecessors Count Percentage
LOAD_ATTR_METHOD_WITH_VALUES 10,555,020 31.1%
RESUME_CHECK 10,527,640 31.1%
LOAD_SUPER_ATTR_METHOD 10,527,060 31.1%
POP_JUMP_IF_NOT_NONE 1,507,160 4.4%
STORE_ATTR_INSTANCE_VALUE 377,780 1.1%
Successors Count Percentage
STORE_ATTR_INSTANCE_VALUE 12,800,880 37.8%
CALL_PY_EXACT_ARGS 10,554,980 31.1%
LOAD_ATTR_INSTANCE_VALUE 10,526,360 31.1%
STORE_ATTR 1,320 0.0%
LOAD_FAST 800 0.0%

LOAD_GLOBAL

Successors and predecessors for LOAD_GLOBAL
Predecessors Count Percentage
LOAD_FAST 640 17.4%
STORE_FAST 560 15.2%
RETURN_VALUE 280 7.6%
LOAD_CONST 280 7.6%
POP_TOP 240 6.5%
Successors Count Percentage
LOAD_GLOBAL_MODULE 1,560 42.4%
CALL 540 14.7%
LOAD_GLOBAL_BUILTIN 280 7.6%
LOAD_FAST 260 7.1%
LOAD_GLOBAL 240 6.5%

LOAD_SUPER_ATTR

Successors and predecessors for LOAD_SUPER_ATTR
Predecessors Count Percentage
LOAD_FAST 320 100.0%
Successors Count Percentage
LOAD_SUPER_ATTR_METHOD 160 50.0%
LOAD_FAST_LOAD_FAST 140 43.8%
LOAD_FAST 20 6.2%

POP_JUMP_IF_FALSE

Successors and predecessors for POP_JUMP_IF_FALSE
Predecessors Count Percentage
TO_BOOL_BOOL 12,037,740 44.5%
COMPARE_OP_INT 10,677,020 39.4%
ENTER_EXECUTOR 4,353,340 16.1%
COMPARE_OP 220 0.0%
TO_BOOL 160 0.0%
Successors Count Percentage
LOAD_FAST 15,132,080 55.9%
LOAD_CONST 6,807,680 25.1%
RETURN_VALUE 2,869,080 10.6%
ENTER_EXECUTOR 1,503,420 5.6%
LOAD_GLOBAL_MODULE 720,060 2.7%

POP_JUMP_IF_NONE

Successors and predecessors for POP_JUMP_IF_NONE
Predecessors Count Percentage
LOAD_FAST 14,267,420 100.0%
Successors Count Percentage
ENTER_EXECUTOR 10,531,000 73.8%
LOAD_FAST 3,720,860 26.1%
LOAD_FAST_LOAD_FAST 15,040 0.1%
JUMP_BACKWARD 340 0.0%
LOAD_GLOBAL_MODULE 140 0.0%

POP_JUMP_IF_NOT_NONE

Successors and predecessors for POP_JUMP_IF_NOT_NONE
Predecessors Count Percentage
LOAD_FAST 18,274,480 83.0%
LOAD_ATTR_INSTANCE_VALUE 3,749,900 17.0%
LOAD_ATTR 40 0.0%
Successors Count Percentage
LOAD_FAST 18,770,160 85.2%
LOAD_FAST_LOAD_FAST 1,507,160 6.8%
LOAD_CONST 1,487,040 6.8%
ENTER_EXECUTOR 260,060 1.2%

POP_JUMP_IF_TRUE

Successors and predecessors for POP_JUMP_IF_TRUE
Predecessors Count Percentage
TO_BOOL_BOOL 10,529,200 100.0%
TO_BOOL 100 0.0%
Successors Count Percentage
LOAD_GLOBAL_BUILTIN 10,526,240 100.0%
POP_TOP 2,880 0.0%
LOAD_GLOBAL 160 0.0%
RETURN_VALUE 20 0.0%

RETURN_CONST

Successors and predecessors for RETURN_CONST
Predecessors Count Percentage
STORE_ATTR_INSTANCE_VALUE 10,530,200 100.0%
POP_TOP 960 0.0%
STORE_ATTR 360 0.0%
FOR_ITER_RANGE 160 0.0%
ENTER_EXECUTOR 140 0.0%
Successors Count Percentage
POP_TOP 10,527,520 100.0%
EXIT_INIT_CHECK 3,640 0.0%
INTERPRETER_EXIT 680 0.0%

STORE_ATTR

Successors and predecessors for STORE_ATTR
Predecessors Count Percentage
LOAD_FAST 2,880 59.0%
LOAD_FAST_LOAD_FAST 1,320 27.0%
STORE_ATTR 360 7.4%
SWAP 200 4.1%
LOAD_GLOBAL 60 1.2%
Successors Count Percentage
LOAD_FAST 1,380 28.3%
STORE_ATTR_INSTANCE_VALUE 1,360 27.9%
LOAD_FAST_LOAD_FAST 940 19.3%
LOAD_CONST 400 8.2%
RETURN_CONST 360 7.4%

STORE_FAST

Successors and predecessors for STORE_FAST
Predecessors Count Percentage
LOAD_ATTR_INSTANCE_VALUE 16,562,120 34.2%
RETURN_VALUE 12,153,460 25.1%
LOAD_FAST 10,541,980 21.8%
LOAD_CONST 6,806,560 14.1%
BINARY_SUBSCR_LIST_INT 1,625,920 3.4%
Successors Count Percentage
LOAD_FAST 35,904,700 74.1%
LOAD_GLOBAL_BUILTIN 10,526,240 21.7%
LOAD_CONST 1,600,000 3.3%
JUMP_FORWARD 191,200 0.4%
LOAD_FAST_LOAD_FAST 186,080 0.4%

SWAP

Successors and predecessors for SWAP
Predecessors Count Percentage
BINARY_OP_ADD_INT 1,886,120 44.0%
BINARY_OP_SUBTRACT_INT 1,599,980 37.3%
BINARY_OP 801,200 18.7%
Successors Count Percentage
STORE_ATTR_INSTANCE_VALUE 4,287,100 100.0%
STORE_ATTR 200 0.0%

RESUME

Successors and predecessors for RESUME
Predecessors Count Percentage
CALL 440 57.9%
COPY_FREE_VARS 180 23.7%
CACHE 140 18.4%
Successors Count Percentage
LOAD_FAST 300 39.5%
LOAD_GLOBAL 220 28.9%
LOAD_CONST 200 26.3%
LOAD_FAST_LOAD_FAST 40 5.3%

BINARY_OP_ADD_INT

Successors and predecessors for BINARY_OP_ADD_INT
Predecessors Count Percentage
LOAD_CONST 3,374,020 90.7%
LOAD_ATTR_INSTANCE_VALUE 346,600 9.3%
BINARY_OP 100 0.0%
Successors Count Percentage
SWAP 1,886,120 50.7%
LOAD_FAST 1,487,980 40.0%
LOAD_CONST 346,620 9.3%

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_CONST 1,946,560 100.0%
BINARY_OP 40 0.0%
Successors Count Percentage
SWAP 1,599,980 82.2%
LOAD_FAST 346,620 17.8%

BINARY_SUBSCR_LIST_INT

Successors and predecessors for BINARY_SUBSCR_LIST_INT
Predecessors Count Percentage
LOAD_FAST 3,113,860 100.0%
BINARY_SUBSCR 40 0.0%
Successors Count Percentage
STORE_FAST 1,625,920 52.2%
LOAD_FAST 1,487,980 47.8%

CALL_ALLOC_AND_ENTER_INIT

Successors and predecessors for CALL_ALLOC_AND_ENTER_INIT
Predecessors Count Percentage
LOAD_GLOBAL_MODULE 2,400 65.9%
RETURN_VALUE 720 19.8%
CALL 520 14.3%
Successors Count Percentage
RESUME_CHECK 2,800 76.9%
COPY_FREE_VARS 840 23.1%

CALL_BUILTIN_CLASS

Successors and predecessors for CALL_BUILTIN_CLASS
Predecessors Count Percentage
LOAD_FAST 160 80.0%
CALL 40 20.0%
Successors Count Percentage
GET_ITER 140 70.0%
STORE_FAST 60 30.0%

CALL_ISINSTANCE

Successors and predecessors for CALL_ISINSTANCE
Predecessors Count Percentage
LOAD_GLOBAL_MODULE 10,526,240 100.0%
CALL 80 0.0%
Successors Count Percentage
TO_BOOL_BOOL 10,526,240 100.0%
TO_BOOL 80 0.0%

CALL_NON_PY_GENERAL

Successors and predecessors for CALL_NON_PY_GENERAL
Predecessors Count Percentage
PUSH_NULL 240 75.0%
CALL 80 25.0%
Successors Count Percentage
POP_TOP 200 62.5%
LOAD_FAST 60 18.8%
STORE_FAST 60 18.8%

CALL_PY_EXACT_ARGS

Successors and predecessors for CALL_PY_EXACT_ARGS
Predecessors Count Percentage
LOAD_ATTR_INSTANCE_VALUE 12,422,760 30.7%
LOAD_FAST_LOAD_FAST 10,554,980 26.1%
LOAD_ATTR_METHOD_WITH_VALUES 8,943,100 22.1%
LOAD_FAST 6,808,960 16.8%
LOAD_GLOBAL_MODULE 1,599,880 4.0%
Successors Count Percentage
RESUME_CHECK 29,804,180 73.7%
COPY_FREE_VARS 10,526,380 26.0%
CALL_PY_EXACT_ARGS 132,260 0.3%

COMPARE_OP_INT

Successors and predecessors for COMPARE_OP_INT
Predecessors Count Percentage
LOAD_GLOBAL_MODULE 5,482,120 51.3%
LOAD_CONST 3,572,560 33.5%
LOAD_ATTR_INSTANCE_VALUE 1,622,120 15.2%
COMPARE_OP 220 0.0%
Successors Count Percentage
POP_JUMP_IF_FALSE 10,677,020 100.0%

FOR_ITER_RANGE

Successors and predecessors for FOR_ITER_RANGE
Predecessors Count Percentage
GET_ITER 372,360 99.8%
JUMP_BACKWARD 440 0.1%
EXTENDED_ARG 280 0.1%
FOR_ITER 60 0.0%
Successors Count Percentage
STORE_FAST 372,820 99.9%
LOAD_FAST 160 0.0%
RETURN_CONST 160 0.0%

LOAD_ATTR_INSTANCE_VALUE

Successors and predecessors for LOAD_ATTR_INSTANCE_VALUE
Predecessors Count Percentage
LOAD_FAST 43,214,680 62.1%
LOAD_FAST_LOAD_FAST 10,526,360 15.1%
ENTER_EXECUTOR 9,588,160 13.8%
COPY 4,287,100 6.2%
LOAD_GLOBAL_MODULE 1,628,100 2.3%
Successors Count Percentage
STORE_FAST 16,562,120 23.8%
RETURN_VALUE 12,933,060 18.6%
CALL_PY_EXACT_ARGS 12,422,760 17.9%
LOAD_FAST 10,691,860 15.4%
LOAD_CONST 8,658,520 12.4%

LOAD_ATTR_METHOD_WITH_VALUES

Successors and predecessors for LOAD_ATTR_METHOD_WITH_VALUES
Predecessors Count Percentage
LOAD_FAST 29,795,400 99.5%
LOAD_ATTR_METHOD_WITH_VALUES 148,780 0.5%
ENTER_EXECUTOR 6,380 0.0%
RETURN_VALUE 720 0.0%
LOAD_ATTR 700 0.0%
Successors Count Percentage
LOAD_FAST_LOAD_FAST 10,555,020 35.2%
CALL_PY_EXACT_ARGS 8,943,100 29.9%
LOAD_FAST 8,704,900 29.1%
LOAD_GLOBAL_MODULE 1,599,760 5.3%
LOAD_ATTR_METHOD_WITH_VALUES 148,780 0.5%

LOAD_ATTR_MODULE

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

LOAD_GLOBAL_BUILTIN

Successors and predecessors for LOAD_GLOBAL_BUILTIN
Predecessors Count Percentage
POP_JUMP_IF_TRUE 10,526,240 50.0%
STORE_FAST 10,526,240 50.0%
RESUME_CHECK 920 0.0%
LOAD_GLOBAL 280 0.0%
POP_JUMP_IF_FALSE 40 0.0%
Successors Count Percentage
LOAD_DEREF 10,527,200 50.0%
LOAD_FAST 10,526,520 50.0%

LOAD_GLOBAL_MODULE

Successors and predecessors for LOAD_GLOBAL_MODULE
Predecessors Count Percentage
LOAD_FAST 13,778,720 59.0%
RESUME_CHECK 3,114,580 13.3%
LOAD_ATTR_INSTANCE_VALUE 2,232,560 9.6%
STORE_ATTR_INSTANCE_VALUE 1,862,260 8.0%
LOAD_ATTR_METHOD_WITH_VALUES 1,599,760 6.9%
Successors Count Percentage
CALL_ISINSTANCE 10,526,240 45.1%
COMPARE_OP_INT 5,482,120 23.5%
LOAD_ATTR_INSTANCE_VALUE 1,628,100 7.0%
CALL_PY_EXACT_ARGS 1,599,880 6.9%
COPY 1,513,580 6.5%

LOAD_SUPER_ATTR_METHOD

Successors and predecessors for LOAD_SUPER_ATTR_METHOD
Predecessors Count Percentage
LOAD_FAST 10,527,040 100.0%
LOAD_SUPER_ATTR 160 0.0%
Successors Count Percentage
LOAD_FAST_LOAD_FAST 10,527,060 100.0%
LOAD_FAST 140 0.0%

RESUME_CHECK

Successors and predecessors for RESUME_CHECK
Predecessors Count Percentage
CALL_PY_EXACT_ARGS 29,804,180 73.9%
COPY_FREE_VARS 10,527,260 26.1%
CALL_ALLOC_AND_ENTER_INIT 2,800 0.0%
CACHE 420 0.0%
CALL 420 0.0%
Successors Count Percentage
LOAD_FAST 17,379,060 43.1%
LOAD_FAST_LOAD_FAST 10,527,640 26.1%
LOAD_CONST 9,312,660 23.1%
LOAD_GLOBAL_MODULE 3,114,580 7.7%
LOAD_GLOBAL_BUILTIN 920 0.0%

STORE_ATTR_INSTANCE_VALUE

Successors and predecessors for STORE_ATTR_INSTANCE_VALUE
Predecessors Count Percentage
LOAD_FAST 33,002,140 65.5%
LOAD_FAST_LOAD_FAST 12,800,880 25.4%
SWAP 4,287,100 8.5%
STORE_ATTR_INSTANCE_VALUE 264,420 0.5%
STORE_ATTR 1,360 0.0%
Successors Count Percentage
LOAD_FAST 27,968,520 55.5%
RETURN_CONST 10,530,200 20.9%
LOAD_CONST 9,355,100 18.6%
LOAD_GLOBAL_MODULE 1,862,260 3.7%
LOAD_FAST_LOAD_FAST 377,780 0.8%

STORE_SUBSCR_LIST_INT

Successors and predecessors for STORE_SUBSCR_LIST_INT
Predecessors Count Percentage
LOAD_FAST 347,520 100.0%
STORE_SUBSCR 40 0.0%
Successors Count Percentage
ENTER_EXECUTOR 346,300 99.6%
LOAD_CONST 940 0.3%
JUMP_BACKWARD 320 0.1%

TO_BOOL_BOOL

Successors and predecessors for TO_BOOL_BOOL
Predecessors Count Percentage
RETURN_VALUE 23,233,060 65.9%
CALL_ISINSTANCE 10,526,240 29.8%
LOAD_GLOBAL_MODULE 1,491,420 4.2%
COPY 20,080 0.1%
LOAD_ATTR_INSTANCE_VALUE 9,740 0.0%
Successors Count Percentage
ENTER_EXECUTOR 12,704,120 36.0%
POP_JUMP_IF_FALSE 12,037,740 34.1%
POP_JUMP_IF_TRUE 10,529,200 29.8%
UNARY_NOT 9,780 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.

3,999,840 41.4%
hit

Specialized instructions that complete.

5,667,380 58.6%
Success Count Ratio
Success 160 8.1%
Failure 1,820 91.9%
Failure kind Count Ratio
floor divide 760 41.8%
and int 580 31.9%
xor 380 20.9%
multiply different types 100 5.5%

BINARY_SUBSCR

specialization stats for BINARY_SUBSCR family
Kind Count Ratio
deferred

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

40 0.0%
hit

Specialized instructions that complete.

3,113,900 100.0%
Success Count Ratio
Success 40 100.0%
Failure 0 0.0%

CALL

specialization stats for CALL family
Kind Count Ratio
deferred

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

6,879,580 13.5%
hit

Specialized instructions that complete.

43,982,740 86.2%
miss

Specialized instructions that deopt.

7,010,240 13.7%
Success Count Ratio
Success 133,860 100.0%
Failure 0 0.0%

COMPARE_OP

specialization stats for COMPARE_OP family
Kind Count Ratio
deferred

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

220 0.0%
hit

Specialized instructions that complete.

10,677,020 100.0%
Success Count Ratio
Success 220 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.

373,140 100.0%
Success Count Ratio
Success 60 100.0%
Failure 0 0.0%

LOAD_ATTR

specialization stats for LOAD_ATTR family
Kind Count Ratio
deferred

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

24,426,260 24.5%
hit

Specialized instructions that complete.

74,624,420 75.0%
miss

Specialized instructions that deopt.

24,894,000 25.0%
Success Count Ratio
Success 471,420 100.0%
Failure 0 0.0%

LOAD_GLOBAL

specialization stats for LOAD_GLOBAL family
Kind Count Ratio
deferred

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

1,840 0.0%
hit

Specialized instructions that complete.

44,395,820 100.0%
Success Count Ratio
Success 1,840 100.0%
Failure 0 0.0%

LOAD_SUPER_ATTR

specialization stats for LOAD_SUPER_ATTR family
Kind Count Ratio
deferred

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

160 0.0%
hit

Specialized instructions that complete.

10,527,200 100.0%
Success Count Ratio
Success 160 100.0%
Failure 0 0.0%

POP_JUMP_IF_FALSE

specialization stats for POP_JUMP_IF_FALSE family

POP_JUMP_IF_NONE

specialization stats for POP_JUMP_IF_NONE family

POP_JUMP_IF_NOT_NONE

specialization stats for POP_JUMP_IF_NOT_NONE family

POP_JUMP_IF_TRUE

specialization stats for POP_JUMP_IF_TRUE family

STORE_ATTR

specialization stats for STORE_ATTR family
Kind Count Ratio
deferred

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

13,762,260 27.3%
hit

Specialized instructions that complete.

36,334,820 72.1%
miss

Specialized instructions that deopt.

14,023,520 27.8%
Success Count Ratio
Success 265,780 99.9%
Failure 360 0.1%
Failure kind Count Ratio
not in keys 360 100.0%

STORE_SUBSCR

specialization stats for STORE_SUBSCR family
Kind Count Ratio
deferred

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

40 0.0%
hit

Specialized instructions that complete.

347,560 100.0%
Success Count Ratio
Success 40 100.0%
Failure 0 0.0%

TO_BOOL

specialization stats for TO_BOOL family
Kind Count Ratio
deferred

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

300 0.0%
hit

Specialized instructions that complete.

35,280,840 100.0%
Success Count Ratio
Success 300 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.

487,258,100 53.2%
Not specialized

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

77,908,520 8.5%
Specialized hits

Specialized instructions, e.g. LOAD_ATTR_MODULE that complete.

305,660,240 33.3%
Specialized misses

Specialized instructions, e.g. LOAD_ATTR_MODULE that deopt.

45,927,760 5.0%

Deferred by instruction

Breakdown of deferred (not specialized) instruction counts by family
Name Count Ratio
LOAD_ATTR 24,426,260 49.8%
STORE_ATTR 13,762,260 28.0%
CALL 6,879,580 14.0%
BINARY_OP 3,999,840 8.2%
LOAD_GLOBAL 1,840 0.0%
TO_BOOL 300 0.0%
COMPARE_OP 220 0.0%
LOAD_SUPER_ATTR 160 0.0%
FOR_ITER 60 0.0%
BINARY_SUBSCR 40 0.0%

Misses by instruction

Breakdown of misses (specialized deopts) instruction counts by family
Name Count Ratio
LOAD_ATTR_INSTANCE_VALUE 17,005,920 37.0%
STORE_ATTR_INSTANCE_VALUE 14,023,520 30.5%
LOAD_ATTR_METHOD_WITH_VALUES 7,888,080 17.2%
CALL_PY_EXACT_ARGS 7,010,240 15.3%
CACHE 0 0.0%
EXIT_INIT_CHECK 0 0.0%
GET_ITER 0 0.0%
INTERPRETER_EXIT 0 0.0%
NOP 0 0.0%
POP_TOP 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 680 0.0%
Calls to Python functions inlined 87,537,800 100.0%
Calls via PyEval_EvalFrame (total) 680 0.0%
Calls via PyEval_EvalFrame (vector) 680 0.0%
Calls via PyEval_EvalFrame (generator) 0 0.0%
Calls via PyEval_EvalFrame (legacy) 0 0.0%
Calls via PyEval_EvalFrame (function vectorcall) 680 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) 80 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 87,542,120 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 1,980 0.0%
Frees to freelist 1,660
Allocations 9,447,780 100.0%
Allocations to 512 bytes 9,447,400 100.0%
Allocations to 4 kbytes 380 0.0%
Allocations over 4 kbytes 0 0.0%
Frees 9,441,582
Inline values 4,160
Interpreter increfs 761,736,280 88.3%
Interpreter decrefs 828,033,100 95.0%
Increfs 100,824,723 11.7%
Decrefs 43,962,838 5.0%
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 78,088,380
Method cache misses 4,405,900
Method cache collisions 4,405,212
Method cache dunder hits 626
Method cache dunder misses 414

GC stats

GC collections and effectiveness

Collected/visits gives some measure of efficiency.

Generation Collections Objects collected Object visits
0 0 0 0
1 0 0 0
2 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.

9,340
Traces created

The number of traces that were successfully created.

540 5.8%
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.

9,140 97.9%
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 abandoced because it it too short.

8,800 94.2%
Inner loop found

A trace is truncated because it has an inner loop

60 0.6%
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.

120 1.3%
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

122,511,020
Uops executed

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

1,653,642,800 1,349.8%
Count Ratio
Optimizer attempts

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

540
Optimizer successes

The number of traces that were successfully optimized.

540 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 20 3.7%
<= 16 120 22.2%
<= 32 120 22.2%
<= 64 160 29.6%
<= 128 80 14.8%
<= 256 40 7.4%

Optimized trace length histogram

optimized trace length histogram
Range Count Ratio
<= 1 0 0.0%
<= 2 0 0.0%
<= 4 20 3.7%
<= 8 80 14.8%
<= 16 100 18.5%
<= 32 140 25.9%
<= 64 140 25.9%
<= 128 60 11.1%

Trace run length histogram

trace run length histogram
Range Count Ratio
<= 1 0 0.0%
<= 2 0 0.0%
<= 4 9,719,000 7.9%
<= 8 27,504,080 22.5%
<= 16 23,759,980 19.4%
<= 32 17,890,560 14.6%
<= 64 13,102,960 10.7%
<= 128 1,505,320 1.2%
<= 256 343,600 0.3%

Uop execution stats

uop execution stats
Name Count Self Cumulative Miss ratio
_GUARD_TYPE_VERSION 164,573,360 10.0% 10.0% 30.3%
_LOAD_FAST_0 138,400,300 8.4% 18.3%
_EXIT_TRACE 93,825,500 5.7% 24.0%
_START_EXECUTOR 93,825,500 5.7% 29.7%
_CHECK_MANAGED_OBJECT_HAS_VALUES 75,080,920 4.5% 34.2%
_LOAD_ATTR_INSTANCE_VALUE_0 75,080,920 4.5% 38.7%
_TO_BOOL_BOOL 70,199,540 4.2% 43.0%
_SET_IP 67,907,420 4.1% 47.1%
_COPY 55,130,780 3.3% 50.4%
_RESUME_CHECK 47,202,640 2.9% 53.3%
_CHECK_FUNCTION_EXACT_ARGS 47,202,640 2.9% 56.1%
_PUSH_FRAME 47,202,640 2.9% 59.0%
_SAVE_RETURN_OFFSET 47,202,640 2.9% 61.9%
_LOAD_ATTR 43,441,920 2.6% 64.5%
_GUARD_IS_FALSE_POP 41,756,680 2.5% 67.0% 19.5%
_CHECK_STACK_SPACE_OPERAND 39,173,980 2.4% 69.4%
_INIT_CALL_PY_EXACT_ARGS_0 38,099,940 2.3% 71.7%
_POP_TOP 36,400,740 2.2% 73.9%
_CHECK_FUNCTION 32,418,120 2.0% 75.8%
_COLD_EXIT 28,685,520 1.7% 77.6%
_LOAD_FAST_1 28,223,820 1.7% 79.3%
_GUARD_IS_TRUE_POP 24,723,960 1.5% 80.8% 26.4%
_CHECK_VALIDITY_AND_SET_IP 22,863,460 1.4% 82.2%
_CHECK_VALIDITY 20,704,780 1.3% 83.4%
_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT 19,908,560 1.2% 84.6%
_GUARD_KEYS_VERSION 19,908,560 1.2% 85.8%
_LOAD_ATTR_METHOD_WITH_VALUES 19,908,560 1.2% 87.0%
_UNARY_NOT 19,878,740 1.2% 88.2%
_GUARD_DORV_NO_DICT 19,754,680 1.2% 89.4%
_STORE_ATTR_INSTANCE_VALUE 19,754,680 1.2% 90.6%
_TIER2_RESUME_CHECK 18,548,480 1.1% 91.7%
_LOAD_FAST_2 18,525,940 1.1% 92.9%
_LOAD_CONST_INLINE_BORROW 15,646,660 0.9% 93.8%
_GUARD_IS_NOT_NONE_POP 11,698,560 0.7% 94.5% 1.1%
_POP_FRAME 9,523,200 0.6% 95.1%
_STORE_FAST_2 9,045,660 0.5% 95.6%
_LOAD_CONST_INLINE 7,386,520 0.4% 96.1%
_STORE_FAST_0 6,528,640 0.4% 96.5%
_BINARY_OP_ADD_INT 5,952,620 0.4% 96.8%
_GUARD_NOS_INT 5,926,700 0.4% 97.2%
_INIT_CALL_PY_EXACT_ARGS_1 5,412,000 0.3% 97.5%
_GUARD_IS_NONE_POP 5,219,680 0.3% 97.8% 26.9%
_LOAD_FAST_3 5,142,360 0.3% 98.1%
_SWAP 4,809,980 0.3% 98.4%
_BINARY_SUBSCR_LIST_INT 3,693,260 0.2% 98.7%
_INIT_CALL_PY_EXACT_ARGS_2 3,690,700 0.2% 98.9%
_COMPARE_OP_INT 3,455,800 0.2% 99.1%
_GUARD_BOTH_INT 2,339,080 0.1% 99.2%
_STORE_FAST_3 1,659,140 0.1% 99.3%
_GUARD_NOT_EXHAUSTED_RANGE 1,488,960 0.1% 99.4% 25.0%
_ITER_CHECK_RANGE 1,488,960 0.1% 99.5%
_STORE_SUBSCR_LIST_INT 1,142,640 0.1% 99.6%
_BINARY_OP_SUBTRACT_INT 1,142,640 0.1% 99.7%
_GUARD_TOS_INT 1,142,640 0.1% 99.7%
_LOAD_FAST_5 1,142,640 0.1% 99.8%
_ITER_NEXT_RANGE 1,116,720 0.1% 99.9%
_STORE_FAST_5 1,116,720 0.1% 99.9%
_JUMP_TO_TOP 1,088,080 0.1% 100.0%
_STORE_ATTR 126,320 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
_LOAD_FAST_0 _GUARD_TYPE_VERSION 126,081,820 7.6% 7.6%
_CHECK_MANAGED_OBJECT_HAS_VALUES _LOAD_ATTR_INSTANCE_VALUE_0 75,080,920 4.5% 12.2%
_GUARD_TYPE_VERSION _CHECK_MANAGED_OBJECT_HAS_VALUES 75,080,920 4.5% 16.7%
_COPY _TO_BOOL_BOOL 50,320,800 3.0% 19.7%
_GUARD_TYPE_VERSION _EXIT_TRACE 49,829,200 3.0% 22.8%
_PUSH_FRAME _RESUME_CHECK 47,202,640 2.9% 25.6%
_SAVE_RETURN_OFFSET _PUSH_FRAME 47,202,640 2.9% 28.5%
_START_EXECUTOR _SET_IP 43,568,240 2.6% 31.1%
_SET_IP _LOAD_ATTR 43,441,920 2.6% 33.7%
_RESUME_CHECK _LOAD_FAST_0 42,161,600 2.5% 36.3%
_CHECK_FUNCTION_EXACT_ARGS _CHECK_STACK_SPACE_OPERAND 39,173,980 2.4% 38.7%
_INIT_CALL_PY_EXACT_ARGS_0 _SAVE_RETURN_OFFSET 38,099,940 2.3% 41.0%
_POP_TOP _LOAD_FAST_0 36,400,740 2.2% 43.2%
_CHECK_STACK_SPACE_OPERAND _INIT_CALL_PY_EXACT_ARGS_0 32,895,740 2.0% 45.1%
_LOAD_ATTR_INSTANCE_VALUE_0 _COPY 28,243,820 1.7% 46.9%
_CHECK_FUNCTION _LOAD_FAST_0 27,582,220 1.7% 48.5%
_SET_IP _CHECK_FUNCTION_EXACT_ARGS 24,339,180 1.5% 50.0%
_CHECK_VALIDITY_AND_SET_IP _CHECK_FUNCTION_EXACT_ARGS 22,863,460 1.4% 51.4%
_LOAD_ATTR _CHECK_VALIDITY_AND_SET_IP 22,863,460 1.4% 52.8%
_TO_BOOL_BOOL _GUARD_IS_FALSE_POP 22,109,380 1.3% 54.1%
_LOAD_ATTR _CHECK_VALIDITY 20,578,460 1.2% 55.3%
_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT _GUARD_KEYS_VERSION 19,908,560 1.2% 56.5%
_GUARD_KEYS_VERSION _LOAD_ATTR_METHOD_WITH_VALUES 19,908,560 1.2% 57.7%
_GUARD_TYPE_VERSION _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT 19,908,560 1.2% 59.0%
_TO_BOOL_BOOL _UNARY_NOT 19,878,740 1.2% 60.2%
_GUARD_DORV_NO_DICT _STORE_ATTR_INSTANCE_VALUE 19,754,680 1.2% 61.3%
_GUARD_TYPE_VERSION _GUARD_DORV_NO_DICT 19,754,680 1.2% 62.5%
_TO_BOOL_BOOL _GUARD_IS_TRUE_POP 19,400,580 1.2% 63.7%
_GUARD_IS_TRUE_POP _POP_TOP 17,691,560 1.1% 64.8%
_START_EXECUTOR _TIER2_RESUME_CHECK 17,460,400 1.1% 65.8%
_TIER2_RESUME_CHECK _CHECK_FUNCTION 17,059,520 1.0% 66.9%
_START_EXECUTOR _GUARD_IS_FALSE_POP 17,053,900 1.0% 67.9%
_GUARD_IS_FALSE_POP _POP_TOP 16,165,680 1.0% 68.9%
_UNARY_NOT _COPY 16,164,400 1.0% 69.9%
_LOAD_ATTR_METHOD_WITH_VALUES _SET_IP 15,236,480 0.9% 70.8%
_LOAD_ATTR_INSTANCE_VALUE_0 _TO_BOOL_BOOL 14,935,700 0.9% 71.7%
_LOAD_FAST_1 _GUARD_TYPE_VERSION 13,568,920 0.8% 72.5%
_GUARD_IS_FALSE_POP _CHECK_FUNCTION 11,610,780 0.7% 73.2%
_LOAD_FAST_2 _GUARD_TYPE_VERSION 9,295,480 0.6% 73.8%
_TO_BOOL_BOOL _EXIT_TRACE 8,810,840 0.5% 74.3%
_GUARD_IS_FALSE_POP _EXIT_TRACE 8,150,280 0.5% 74.8%
_GUARD_IS_NOT_NONE_POP _EXIT_TRACE 6,657,520 0.4% 75.2%
_CHECK_VALIDITY _LOAD_FAST_1 6,645,920 0.4% 75.6%
_GUARD_IS_TRUE_POP _EXIT_TRACE 6,538,540 0.4% 76.0%
_START_EXECUTOR _LOAD_FAST_0 6,529,920 0.4% 76.4%
_LOAD_FAST_0 _GUARD_IS_NOT_NONE_POP 6,528,640 0.4% 76.8%
_STORE_FAST_0 _LOAD_FAST_0 6,528,640 0.4% 77.2%
_STORE_ATTR_INSTANCE_VALUE _LOAD_FAST_0 6,032,340 0.4% 77.5%
_LOAD_FAST_1 _LOAD_FAST_0 6,031,060 0.4% 77.9%
_LOAD_ATTR_INSTANCE_VALUE_0 _LOAD_CONST_INLINE_BORROW 5,926,700 0.4% 78.3%
_LOAD_CONST_INLINE_BORROW _GUARD_NOS_INT 5,926,700 0.4% 78.6%
_CHECK_VALIDITY _COPY 5,912,580 0.4% 79.0%
_STORE_ATTR_INSTANCE_VALUE _LOAD_CONST_INLINE_BORROW 5,906,020 0.4% 79.3%
_POP_FRAME _EXIT_TRACE 5,829,940 0.4% 79.7%
_INIT_CALL_PY_EXACT_ARGS_1 _SAVE_RETURN_OFFSET 5,412,000 0.3% 80.0%
_STORE_FAST_2 _LOAD_FAST_2 5,352,400 0.3% 80.3%
_CHECK_FUNCTION_EXACT_ARGS _INIT_CALL_PY_EXACT_ARGS_0 5,204,200 0.3% 80.7%
_LOAD_ATTR_INSTANCE_VALUE_0 _LOAD_FAST_1 5,169,940 0.3% 81.0%
_LOAD_FAST_2 _POP_FRAME 5,169,940 0.3% 81.3%
_LOAD_ATTR_INSTANCE_VALUE_0 _SET_IP 5,041,040 0.3% 81.6%
_CHECK_VALIDITY _TO_BOOL_BOOL 4,943,040 0.3% 81.9%
_COPY _GUARD_TYPE_VERSION 4,809,980 0.3% 82.2%
_SWAP _GUARD_TYPE_VERSION 4,809,980 0.3% 82.5%
_BINARY_OP_ADD_INT _SWAP 4,809,980 0.3% 82.8%
_GUARD_NOS_INT _BINARY_OP_ADD_INT 4,809,980 0.3% 83.1%
_START_EXECUTOR _GUARD_IS_TRUE_POP 4,460,980 0.3% 83.3%
_GUARD_IS_FALSE_POP _POP_FRAME 4,353,260 0.3% 83.6%
_CHECK_STACK_SPACE_OPERAND _INIT_CALL_PY_EXACT_ARGS_1 4,064,220 0.2% 83.8%
_LOAD_ATTR_INSTANCE_VALUE_0 _STORE_FAST_0 3,819,260 0.2% 84.1%
_UNARY_NOT _EXIT_TRACE 3,714,340 0.2% 84.3%
_BINARY_SUBSCR_LIST_INT _STORE_FAST_2 3,693,260 0.2% 84.5%
_RESUME_CHECK _LOAD_CONST_INLINE 3,693,260 0.2% 84.7%
_CHECK_FUNCTION _LOAD_CONST_INLINE 3,693,260 0.2% 85.0%
_GUARD_IS_NOT_NONE_POP _LOAD_FAST_2 3,693,260 0.2% 85.2%
_LOAD_CONST_INLINE _COPY 3,693,260 0.2% 85.4%
_LOAD_CONST_INLINE _GUARD_TYPE_VERSION 3,693,260 0.2% 85.6%
_LOAD_CONST_INLINE_BORROW _LOAD_FAST_1 3,693,260 0.2% 85.8%
_LOAD_FAST_1 _BINARY_SUBSCR_LIST_INT 3,693,260 0.2% 86.1%
_LOAD_FAST_2 _GUARD_IS_NOT_NONE_POP 3,693,260 0.2% 86.3%
_POP_FRAME _STORE_FAST_2 3,693,260 0.2% 86.5%
_STORE_FAST_2 _CHECK_FUNCTION 3,693,260 0.2% 86.7%
_STORE_ATTR_INSTANCE_VALUE _LOAD_FAST_2 3,691,980 0.2% 87.0%
_INIT_CALL_PY_EXACT_ARGS_2 _SAVE_RETURN_OFFSET 3,690,700 0.2% 87.2%
_LOAD_FAST_0 _SET_IP 3,690,700 0.2% 87.4%
_LOAD_CONST_INLINE_BORROW _LOAD_FAST_0 3,686,860 0.2% 87.6%
_LOAD_ATTR_METHOD_WITH_VALUES _LOAD_FAST_1 3,324,300 0.2% 87.8%
_STORE_ATTR_INSTANCE_VALUE _LOAD_FAST_1 2,953,060 0.2% 88.0%
_CHECK_VALIDITY _STORE_FAST_0 2,709,380 0.2% 88.2%
_COMPARE_OP_INT _GUARD_IS_FALSE_POP 2,593,400 0.2% 88.3%
_START_EXECUTOR _POP_TOP 2,543,500 0.2% 88.5%
_GUARD_BOTH_INT _COMPARE_OP_INT 2,339,080 0.1% 88.6%
_LOAD_ATTR_INSTANCE_VALUE_0 _GUARD_BOTH_INT 2,339,080 0.1% 88.8%
_LOAD_ATTR_INSTANCE_VALUE_0 _LOAD_FAST_2 2,339,080 0.1% 88.9%
_LOAD_FAST_3 _GUARD_TYPE_VERSION 2,313,920 0.1% 89.1%
_CHECK_STACK_SPACE_OPERAND _INIT_CALL_PY_EXACT_ARGS_2 2,214,020 0.1% 89.2%
_GUARD_IS_NONE_POP _LOAD_FAST_1 2,212,760 0.1% 89.3%
_LOAD_ATTR_INSTANCE_VALUE_0 _GUARD_IS_NONE_POP 1,845,220 0.1% 89.4%
_START_EXECUTOR _LOAD_FAST_1 1,734,160 0.1% 89.5%
_LOAD_ATTR_INSTANCE_VALUE_0 _STORE_FAST_3 1,659,140 0.1% 89.6%
_LOAD_FAST_3 _GUARD_IS_NONE_POP 1,659,140 0.1% 89.7%

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-06-16