Skip to content

Latest commit

 

History

History
7662 lines (7007 loc) · 139 KB

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

File metadata and controls

7662 lines (7007 loc) · 139 KB

Pystats results

  • benchmark: gc_collect
  • 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 27,094,560 15.1% 15.1%
RETURN_VALUE 26,210,646 14.6% 29.7%
STORE_FAST 17,921,459 10.0% 39.7%
LOAD_FAST_LOAD_FAST 17,069,166 9.5% 49.2%
STORE_ATTR_INSTANCE_VALUE 16,670,772 9.3% 58.5%
ENTER_EXECUTOR 9,153,241 5.1% 63.7%
RESUME_CHECK 8,755,926 4.9% 68.5% 0.0%
POP_TOP 8,750,923 4.9% 73.4%
CALL_PY_EXACT_ARGS 8,742,630 4.9% 78.3%
EXIT_INIT_CHECK 8,733,898 4.9% 83.2%
LOAD_CONST_IMMORTAL 8,366,565 4.7% 87.8%
LOAD_ATTR_INSTANCE_VALUE 8,322,574 4.6% 92.5%
LOAD_ATTR_METHOD_WITH_VALUES 8,322,435 4.6% 97.1%
LOAD_GLOBAL_MODULE 864,899 0.5% 97.6%
FOR_ITER_RANGE 432,475 0.2% 97.8%
CALL_ALLOC_AND_ENTER_INIT 428,003 0.2% 98.1%
LOAD_SMALL_INT 420,199 0.2% 98.3%
GET_ITER 420,129 0.2% 98.5%
POP_JUMP_IF_FALSE 420,129 0.2% 98.8%
CALL_BUILTIN_CLASS 420,126 0.2% 99.0%
LOAD_GLOBAL_BUILTIN 420,126 0.2% 99.2%
COMPARE_OP_INT 420,057 0.2% 99.5%
LOAD_ATTR_METHOD_NO_DICT 416,037 0.2% 99.7%
CALL_LIST_APPEND 415,899 0.2% 99.9%
PUSH_NULL 16,986 0.0% 100.0%
LOAD_ATTR_MODULE 16,770 0.0% 100.0%
JUMP_BACKWARD 12,421 0.0% 100.0%
CALL_NON_PY_GENERAL 8,523 0.0% 100.0%
CALL_BUILTIN_FAST_WITH_KEYWORDS 8,316 0.0% 100.0%
BUILD_LIST 4,229 0.0% 100.0%
POP_JUMP_IF_NOT_NONE 4,229 0.0% 100.0%
DELETE_FAST 4,159 0.0% 100.0%
BINARY_OP_ADD_INT 4,158 0.0% 100.0%
BINARY_OP_MULTIPLY_INT 4,158 0.0% 100.0%
BINARY_OP_SUBTRACT_FLOAT 4,158 0.0% 100.0%
BINARY_OP_ADD_FLOAT 4,155 0.0% 100.0% 1.6%
LOAD_ATTR 307 0.0% 100.0%
CALL 268 0.0% 100.0%
BUILD_TUPLE 140 0.0% 100.0%
CALL_FUNCTION_EX 140 0.0% 100.0%
LOAD_CONST 140 0.0% 100.0%
LOAD_DEREF 140 0.0% 100.0%
TO_BOOL 113 0.0% 100.0%
LOAD_GLOBAL 108 0.0% 100.0%
FOR_ITER 78 0.0% 100.0%
MAKE_FUNCTION 70 0.0% 100.0%
NOP 70 0.0% 100.0%
CALL_INTRINSIC_1 70 0.0% 100.0%
COPY_FREE_VARS 70 0.0% 100.0%
IS_OP 70 0.0% 100.0%
JUMP_FORWARD 70 0.0% 100.0%
LIST_EXTEND 70 0.0% 100.0%
MAKE_CELL 70 0.0% 100.0%
POP_JUMP_IF_TRUE 70 0.0% 100.0%
SET_FUNCTION_ATTRIBUTE 70 0.0% 100.0%
STORE_DEREF 70 0.0% 100.0%
STORE_FAST_STORE_FAST 70 0.0% 100.0%
BINARY_SUBSCR_TUPLE_INT 69 0.0% 100.0%
CALL_METHOD_DESCRIPTOR_NOARGS 69 0.0% 100.0%
CALL_METHOD_DESCRIPTOR_O 69 0.0% 100.0%
CALL_PY_GENERAL 69 0.0% 100.0%
TO_BOOL_BOOL 69 0.0% 100.0%
UNPACK_SEQUENCE_TWO_TUPLE 69 0.0% 100.0%
BINARY_SUBSCR 22 0.0% 100.0%
UNPACK_SEQUENCE 22 0.0% 100.0%
BINARY_OP 12 0.0% 100.0%
RESUME 11 0.0% 100.0% 38,772.7%
STORE_ATTR 8 0.0% 100.0%
COMPARE_OP 4 0.0% 100.0%
INTERPRETER_EXIT 2 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
ENTER_EXECUTOR RETURN_VALUE 9,132,411 5.1% 5.1%
CALL_PY_EXACT_ARGS RESUME_CHECK 8,742,561 4.9% 10.0%
STORE_FAST LOAD_FAST 8,742,498 4.9% 14.8%
RETURN_VALUE POP_TOP 8,738,409 4.9% 19.7%
RETURN_VALUE STORE_FAST 8,738,267 4.9% 24.6%
LOAD_FAST STORE_FAST 8,733,900 4.9% 29.5%
EXIT_INIT_CHECK RETURN_VALUE 8,733,898 4.9% 34.3%
RETURN_VALUE EXIT_INIT_CHECK 8,733,898 4.9% 39.2%
STORE_ATTR_INSTANCE_VALUE LOAD_CONST_IMMORTAL 8,348,474 4.7% 43.9%
LOAD_CONST_IMMORTAL RETURN_VALUE 8,339,897 4.7% 48.5%
POP_TOP LOAD_FAST 8,326,284 4.6% 53.2%
LOAD_FAST LOAD_ATTR_METHOD_WITH_VALUES 8,322,391 4.6% 57.8%
LOAD_ATTR_METHOD_WITH_VALUES LOAD_FAST 8,322,366 4.6% 62.4%
LOAD_FAST_LOAD_FAST LOAD_ATTR_INSTANCE_VALUE 8,322,345 4.6% 67.1%
RESUME_CHECK LOAD_FAST_LOAD_FAST 8,322,298 4.6% 71.7%
STORE_ATTR_INSTANCE_VALUE LOAD_FAST_LOAD_FAST 8,322,298 4.6% 76.4%
LOAD_FAST_LOAD_FAST STORE_ATTR_INSTANCE_VALUE 8,322,297 4.6% 81.0%
LOAD_ATTR_INSTANCE_VALUE STORE_ATTR_INSTANCE_VALUE 8,322,297 4.6% 85.7%
LOAD_FAST CALL_PY_EXACT_ARGS 8,322,295 4.6% 90.3%
STORE_FAST ENTER_EXECUTOR 8,313,904 4.6% 94.9%
STORE_FAST LOAD_GLOBAL_MODULE 436,363 0.2% 95.2%
FOR_ITER_RANGE STORE_FAST 432,161 0.2% 95.4%
LOAD_GLOBAL_MODULE CALL_ALLOC_AND_ENTER_INIT 428,001 0.2% 95.7%
CALL_ALLOC_AND_ENTER_INIT ENTER_EXECUTOR 423,272 0.2% 95.9%
LOAD_FAST_LOAD_FAST CALL_PY_EXACT_ARGS 420,151 0.2% 96.1%
LOAD_FAST LOAD_SMALL_INT 420,129 0.2% 96.4%
GET_ITER FOR_ITER_RANGE 420,126 0.2% 96.6%
CALL_BUILTIN_CLASS GET_ITER 420,126 0.2% 96.8%
LOAD_GLOBAL_BUILTIN LOAD_FAST 420,126 0.2% 97.1%
LOAD_GLOBAL_MODULE LOAD_FAST_LOAD_FAST 420,126 0.2% 97.3%
LOAD_FAST CALL_BUILTIN_CLASS 420,103 0.2% 97.5%
STORE_FAST LOAD_GLOBAL_BUILTIN 420,103 0.2% 97.8%
COMPARE_OP_INT POP_JUMP_IF_FALSE 420,057 0.2% 98.0%
RESUME_CHECK LOAD_FAST 416,106 0.2% 98.2%
POP_JUMP_IF_FALSE LOAD_FAST 415,970 0.2% 98.5%
LOAD_ATTR_METHOD_NO_DICT LOAD_FAST 415,899 0.2% 98.7%
LOAD_FAST CALL_LIST_APPEND 415,898 0.2% 98.9%
LOAD_FAST LOAD_ATTR_METHOD_NO_DICT 415,898 0.2% 99.2%
LOAD_SMALL_INT COMPARE_OP_INT 415,898 0.2% 99.4%
CALL_LIST_APPEND LOAD_GLOBAL_MODULE 415,898 0.2% 99.6%
POP_TOP ENTER_EXECUTOR 411,804 0.2% 99.9%
LOAD_CONST_IMMORTAL LOAD_FAST 26,178 0.0% 99.9%
LOAD_FAST STORE_ATTR_INSTANCE_VALUE 26,174 0.0% 99.9%
LOAD_ATTR_MODULE PUSH_NULL 16,770 0.0% 99.9%
LOAD_GLOBAL_MODULE LOAD_ATTR_MODULE 16,724 0.0% 99.9%
RESUME_CHECK LOAD_CONST_IMMORTAL 13,088 0.0% 99.9%
JUMP_BACKWARD FOR_ITER_RANGE 12,346 0.0% 99.9%
PUSH_NULL CALL_NON_PY_GENERAL 8,410 0.0% 99.9%
ENTER_EXECUTOR RESUME_CHECK 8,355 0.0% 99.9%
PUSH_NULL CALL_BUILTIN_FAST_WITH_KEYWORDS 8,314 0.0% 99.9%
ENTER_EXECUTOR POP_TOP 8,214 0.0% 99.9%
CALL_ALLOC_AND_ENTER_INIT RESUME_CHECK 4,731 0.0% 99.9%
POP_TOP LOAD_CONST_IMMORTAL 4,509 0.0% 99.9%
LOAD_FAST RETURN_VALUE 4,299 0.0% 99.9%
ENTER_EXECUTOR ENTER_EXECUTOR 4,261 0.0% 99.9%
LOAD_FAST POP_JUMP_IF_NOT_NONE 4,229 0.0% 99.9%
POP_TOP JUMP_BACKWARD 4,166 0.0% 99.9%
BUILD_LIST STORE_FAST 4,159 0.0% 100.0%
LOAD_FAST_LOAD_FAST LOAD_FAST 4,159 0.0% 100.0%
POP_JUMP_IF_FALSE JUMP_BACKWARD 4,159 0.0% 100.0%
POP_JUMP_IF_NOT_NONE LOAD_FAST_LOAD_FAST 4,159 0.0% 100.0%
STORE_FAST DELETE_FAST 4,159 0.0% 100.0%
CALL_BUILTIN_FAST_WITH_KEYWORDS POP_TOP 4,158 0.0% 100.0%
CALL_BUILTIN_FAST_WITH_KEYWORDS STORE_FAST 4,158 0.0% 100.0%
CALL_NON_PY_GENERAL LOAD_FAST 4,158 0.0% 100.0%
CALL_NON_PY_GENERAL STORE_FAST 4,158 0.0% 100.0%
RESUME_CHECK BUILD_LIST 4,158 0.0% 100.0%
POP_TOP LOAD_GLOBAL_MODULE 4,157 0.0% 100.0%
DELETE_FAST LOAD_GLOBAL_MODULE 4,157 0.0% 100.0%
LOAD_FAST BINARY_OP_SUBTRACT_FLOAT 4,157 0.0% 100.0%
LOAD_FAST LOAD_GLOBAL_MODULE 4,157 0.0% 100.0%
LOAD_SMALL_INT BINARY_OP_ADD_INT 4,157 0.0% 100.0%
BINARY_OP_ADD_INT BINARY_OP_MULTIPLY_INT 4,157 0.0% 100.0%
BINARY_OP_MULTIPLY_INT COMPARE_OP_INT 4,157 0.0% 100.0%
BINARY_OP_ADD_FLOAT STORE_FAST 4,155 0.0% 100.0%
BINARY_OP_SUBTRACT_FLOAT BINARY_OP_ADD_FLOAT 4,154 0.0% 100.0%
STORE_FAST JUMP_BACKWARD 4,096 0.0% 100.0%
FOR_ITER_RANGE LOAD_FAST 314 0.0% 100.0%
STORE_FAST LOAD_CONST_IMMORTAL 210 0.0% 100.0%
LOAD_FAST LOAD_ATTR 165 0.0% 100.0%
LOAD_FAST LOAD_ATTR_INSTANCE_VALUE 165 0.0% 100.0%
PUSH_NULL LOAD_FAST 140 0.0% 100.0%
LOAD_FAST PUSH_NULL 140 0.0% 100.0%
LOAD_FAST LOAD_CONST_IMMORTAL 140 0.0% 100.0%
LOAD_CONST_IMMORTAL STORE_FAST 140 0.0% 100.0%
LOAD_CONST_IMMORTAL LOAD_CONST_IMMORTAL 140 0.0% 100.0%
LOAD_ATTR_INSTANCE_VALUE LOAD_ATTR_METHOD_NO_DICT 96 0.0% 100.0%
RESUME_CHECK LOAD_GLOBAL_MODULE 96 0.0% 100.0%
CALL CALL_PY_EXACT_ARGS 88 0.0% 100.0%
JUMP_BACKWARD FOR_ITER 73 0.0% 100.0%
LOAD_ATTR LOAD_FAST_LOAD_FAST 72 0.0% 100.0%
LOAD_GLOBAL LOAD_GLOBAL_MODULE 71 0.0% 100.0%
CACHE RESUME_CHECK 70 0.0% 100.0%
MAKE_FUNCTION SET_FUNCTION_ATTRIBUTE 70 0.0% 100.0%
NOP LOAD_FAST 70 0.0% 100.0%
PUSH_NULL LOAD_FAST_LOAD_FAST 70 0.0% 100.0%
RETURN_VALUE RETURN_VALUE 70 0.0% 100.0%
TO_BOOL POP_JUMP_IF_FALSE 70 0.0% 100.0%
BUILD_LIST LOAD_DEREF 70 0.0% 100.0%
BUILD_TUPLE LOAD_CONST 70 0.0% 100.0%

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 70 97.2%
RESUME 2 2.8%

BINARY_SUBSCR

Successors and predecessors for BINARY_SUBSCR
Predecessors Count Percentage
LOAD_SMALL_INT 22 100.0%
Successors Count Percentage
BINARY_SUBSCR_TUPLE_INT 21 95.5%
STORE_FAST 1 4.5%

EXIT_INIT_CHECK

Successors and predecessors for EXIT_INIT_CHECK
Predecessors Count Percentage
RETURN_VALUE 8,733,898 100.0%
Successors Count Percentage
RETURN_VALUE 8,733,898 100.0%

GET_ITER

Successors and predecessors for GET_ITER
Predecessors Count Percentage
CALL_BUILTIN_CLASS 420,126 100.0%
CALL 3 0.0%
Successors Count Percentage
FOR_ITER_RANGE 420,126 100.0%
FOR_ITER 3 0.0%

MAKE_FUNCTION

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

NOP

Successors and predecessors for NOP
Predecessors Count Percentage
POP_JUMP_IF_TRUE 70 100.0%
Successors Count Percentage
LOAD_FAST 70 100.0%

POP_TOP

Successors and predecessors for POP_TOP
Predecessors Count Percentage
RETURN_VALUE 8,738,409 99.9%
ENTER_EXECUTOR 8,214 0.1%
CALL_BUILTIN_FAST_WITH_KEYWORDS 4,158 0.0%
CALL_METHOD_DESCRIPTOR_O 69 0.0%
CALL_NON_PY_GENERAL 69 0.0%
Successors Count Percentage
LOAD_FAST 8,326,284 95.1%
ENTER_EXECUTOR 411,804 4.7%
LOAD_CONST_IMMORTAL 4,509 0.1%
JUMP_BACKWARD 4,166 0.0%
LOAD_GLOBAL_MODULE 4,157 0.0%

PUSH_NULL

Successors and predecessors for PUSH_NULL
Predecessors Count Percentage
LOAD_ATTR_MODULE 16,770 98.7%
LOAD_FAST 140 0.8%
LOAD_DEREF 70 0.4%
LOAD_ATTR 6 0.0%
Successors Count Percentage
CALL_NON_PY_GENERAL 8,410 49.5%
CALL_BUILTIN_FAST_WITH_KEYWORDS 8,314 48.9%
LOAD_FAST 140 0.8%
LOAD_FAST_LOAD_FAST 70 0.4%
CALL 52 0.3%

RETURN_VALUE

Successors and predecessors for RETURN_VALUE
Predecessors Count Percentage
ENTER_EXECUTOR 9,132,411 34.8%
EXIT_INIT_CHECK 8,733,898 33.3%
LOAD_CONST_IMMORTAL 8,339,897 31.8%
LOAD_FAST 4,299 0.0%
RETURN_VALUE 70 0.0%
Successors Count Percentage
POP_TOP 8,738,409 33.3%
STORE_FAST 8,738,267 33.3%
EXIT_INIT_CHECK 8,733,898 33.3%
RETURN_VALUE 70 0.0%
INTERPRETER_EXIT 2 0.0%

TO_BOOL

Successors and predecessors for TO_BOOL
Predecessors Count Percentage
LOAD_ATTR_INSTANCE_VALUE 69 61.1%
LOAD_FAST 22 19.5%
TO_BOOL 21 18.6%
LOAD_ATTR 1 0.9%
Successors Count Percentage
POP_JUMP_IF_FALSE 70 61.9%
TO_BOOL 21 18.6%
TO_BOOL_BOOL 21 18.6%
POP_JUMP_IF_TRUE 1 0.9%

BINARY_OP

Successors and predecessors for BINARY_OP
Predecessors Count Percentage
BINARY_OP_SUBTRACT_FLOAT 4 33.3%
BINARY_OP 3 25.0%
LOAD_FAST 2 16.7%
LOAD_SMALL_INT 2 16.7%
BINARY_OP_ADD_INT 1 8.3%
Successors Count Percentage
STORE_FAST 4 33.3%
BINARY_OP 3 25.0%
COMPARE_OP 1 8.3%
BINARY_OP_ADD_FLOAT 1 8.3%
BINARY_OP_ADD_INT 1 8.3%

BUILD_LIST

Successors and predecessors for BUILD_LIST
Predecessors Count Percentage
RESUME_CHECK 4,158 98.3%
LOAD_FAST 70 1.7%
RESUME 1 0.0%
Successors Count Percentage
STORE_FAST 4,159 98.3%
LOAD_DEREF 70 1.7%

BUILD_TUPLE

Successors and predecessors for BUILD_TUPLE
Predecessors Count Percentage
LOAD_FAST 70 50.0%
LOAD_FAST_LOAD_FAST 70 50.0%
Successors Count Percentage
LOAD_CONST 70 50.0%
CALL_METHOD_DESCRIPTOR_O 48 34.3%
CALL 22 15.7%

CALL

Successors and predecessors for CALL
Predecessors Count Percentage
LOAD_FAST_LOAD_FAST 70 26.1%
PUSH_NULL 52 19.4%
LOAD_CONST_IMMORTAL 44 16.4%
LOAD_FAST 32 11.9%
BUILD_TUPLE 22 8.2%
Successors Count Percentage
CALL_PY_EXACT_ARGS 88 32.8%
CALL_NON_PY_GENERAL 65 24.3%
CALL_BUILTIN_CLASS 23 8.6%
CALL_METHOD_DESCRIPTOR_NOARGS 21 7.8%
CALL_METHOD_DESCRIPTOR_O 21 7.8%

CALL_FUNCTION_EX

Successors and predecessors for CALL_FUNCTION_EX
Predecessors Count Percentage
CALL_INTRINSIC_1 70 50.0%
LOAD_FAST 70 50.0%
Successors Count Percentage
RESUME_CHECK 69 98.6%
RESUME 1 1.4%

CALL_INTRINSIC_1

Successors and predecessors for CALL_INTRINSIC_1
Predecessors Count Percentage
LIST_EXTEND 70 100.0%
Successors Count Percentage
CALL_FUNCTION_EX 70 100.0%

COMPARE_OP

Successors and predecessors for COMPARE_OP
Predecessors Count Percentage
LOAD_SMALL_INT 2 50.0%
BINARY_OP 1 25.0%
BINARY_OP_MULTIPLY_INT 1 25.0%
Successors Count Percentage
POP_JUMP_IF_FALSE 2 50.0%
COMPARE_OP_INT 2 50.0%

COPY_FREE_VARS

Successors and predecessors for COPY_FREE_VARS
Predecessors Count Percentage
CALL_PY_EXACT_ARGS 69 98.6%
CALL 1 1.4%
Successors Count Percentage
RESUME_CHECK 69 98.6%
RESUME 1 1.4%

DELETE_FAST

Successors and predecessors for DELETE_FAST
Predecessors Count Percentage
STORE_FAST 4,159 100.0%
Successors Count Percentage
LOAD_GLOBAL_MODULE 4,157 100.0%
LOAD_GLOBAL 2 0.0%

FOR_ITER

Successors and predecessors for FOR_ITER
Predecessors Count Percentage
JUMP_BACKWARD 73 93.6%
GET_ITER 3 3.8%
FOR_ITER 2 2.6%
Successors Count Percentage
LOAD_FAST 70 89.7%
STORE_FAST 3 3.8%
FOR_ITER_RANGE 3 3.8%
FOR_ITER 2 2.6%

IS_OP

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

JUMP_BACKWARD

Successors and predecessors for JUMP_BACKWARD
Predecessors Count Percentage
POP_TOP 4,166 33.5%
POP_JUMP_IF_FALSE 4,159 33.5%
STORE_FAST 4,096 33.0%
Successors Count Percentage
FOR_ITER_RANGE 12,346 99.4%
FOR_ITER 73 0.6%
RETURN_VALUE 1 0.0%
RESUME_CHECK 1 0.0%

JUMP_FORWARD

Successors and predecessors for JUMP_FORWARD
Predecessors Count Percentage
STORE_FAST 70 100.0%
Successors Count Percentage
LOAD_FAST 70 100.0%

LIST_EXTEND

Successors and predecessors for LIST_EXTEND
Predecessors Count Percentage
LOAD_DEREF 70 100.0%
Successors Count Percentage
CALL_INTRINSIC_1 70 100.0%

LOAD_ATTR

Successors and predecessors for LOAD_ATTR
Predecessors Count Percentage
LOAD_FAST 165 53.7%
LOAD_GLOBAL_MODULE 46 15.0%
LOAD_ATTR_INSTANCE_VALUE 42 13.7%
LOAD_ATTR 24 7.8%
LOAD_FAST_LOAD_FAST 24 7.8%
Successors Count Percentage
LOAD_FAST_LOAD_FAST 72 23.5%
LOAD_ATTR_INSTANCE_VALUE 64 20.8%
LOAD_ATTR_MODULE 46 15.0%
LOAD_ATTR_METHOD_WITH_VALUES 44 14.3%
LOAD_ATTR_METHOD_NO_DICT 43 14.0%

LOAD_CONST

Successors and predecessors for LOAD_CONST
Predecessors Count Percentage
BUILD_TUPLE 70 50.0%
POP_JUMP_IF_NOT_NONE 70 50.0%
Successors Count Percentage
MAKE_FUNCTION 70 50.0%
STORE_FAST 70 50.0%

LOAD_DEREF

Successors and predecessors for LOAD_DEREF
Predecessors Count Percentage
BUILD_LIST 70 50.0%
RESUME_CHECK 69 49.3%
RESUME 1 0.7%
Successors Count Percentage
PUSH_NULL 70 50.0%
LIST_EXTEND 70 50.0%

LOAD_FAST

Successors and predecessors for LOAD_FAST
Predecessors Count Percentage
STORE_FAST 8,742,498 32.3%
POP_TOP 8,326,284 30.7%
LOAD_ATTR_METHOD_WITH_VALUES 8,322,366 30.7%
LOAD_GLOBAL_BUILTIN 420,126 1.6%
RESUME_CHECK 416,106 1.5%
Successors Count Percentage
STORE_FAST 8,733,900 32.2%
LOAD_ATTR_METHOD_WITH_VALUES 8,322,391 30.7%
CALL_PY_EXACT_ARGS 8,322,295 30.7%
LOAD_SMALL_INT 420,129 1.6%
CALL_BUILTIN_CLASS 420,103 1.6%

LOAD_FAST_LOAD_FAST

Successors and predecessors for LOAD_FAST_LOAD_FAST
Predecessors Count Percentage
RESUME_CHECK 8,322,298 48.8%
STORE_ATTR_INSTANCE_VALUE 8,322,298 48.8%
LOAD_GLOBAL_MODULE 420,126 2.5%
POP_JUMP_IF_NOT_NONE 4,159 0.0%
LOAD_ATTR 72 0.0%
Successors Count Percentage
LOAD_ATTR_INSTANCE_VALUE 8,322,345 48.8%
STORE_ATTR_INSTANCE_VALUE 8,322,297 48.8%
CALL_PY_EXACT_ARGS 420,151 2.5%
LOAD_FAST 4,159 0.0%
BUILD_TUPLE 70 0.0%

LOAD_GLOBAL

Successors and predecessors for LOAD_GLOBAL
Predecessors Count Percentage
STORE_FAST 56 51.9%
RESUME_CHECK 42 38.9%
POP_TOP 3 2.8%
DELETE_FAST 2 1.9%
LOAD_FAST 2 1.9%
Successors Count Percentage
LOAD_GLOBAL_MODULE 71 65.7%
LOAD_GLOBAL_BUILTIN 23 21.3%
LOAD_ATTR 6 5.6%
LOAD_FAST 3 2.8%
LOAD_FAST_LOAD_FAST 3 2.8%

LOAD_SMALL_INT

Successors and predecessors for LOAD_SMALL_INT
Predecessors Count Percentage
LOAD_FAST 420,129 100.0%
RESUME_CHECK 69 0.0%
RESUME 1 0.0%
Successors Count Percentage
COMPARE_OP_INT 415,898 99.0%
BINARY_OP_ADD_INT 4,157 1.0%
STORE_FAST 70 0.0%
BINARY_SUBSCR_TUPLE_INT 48 0.0%
BINARY_SUBSCR 22 0.0%

MAKE_CELL

Successors and predecessors for MAKE_CELL
Predecessors Count Percentage
CALL_PY_GENERAL 69 98.6%
CALL 1 1.4%
Successors Count Percentage
RESUME_CHECK 69 98.6%
RESUME 1 1.4%

POP_JUMP_IF_FALSE

Successors and predecessors for POP_JUMP_IF_FALSE
Predecessors Count Percentage
COMPARE_OP_INT 420,057 100.0%
TO_BOOL 70 0.0%
COMPARE_OP 2 0.0%
Successors Count Percentage
LOAD_FAST 415,970 99.0%
JUMP_BACKWARD 4,159 1.0%

POP_JUMP_IF_NOT_NONE

Successors and predecessors for POP_JUMP_IF_NOT_NONE
Predecessors Count Percentage
LOAD_FAST 4,229 100.0%
Successors Count Percentage
LOAD_FAST_LOAD_FAST 4,159 98.3%
LOAD_CONST 70 1.7%

POP_JUMP_IF_TRUE

Successors and predecessors for POP_JUMP_IF_TRUE
Predecessors Count Percentage
TO_BOOL_BOOL 69 98.6%
TO_BOOL 1 1.4%
Successors Count Percentage
NOP 70 100.0%

SET_FUNCTION_ATTRIBUTE

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

STORE_ATTR

Successors and predecessors for STORE_ATTR
Predecessors Count Percentage
LOAD_FAST 4 50.0%
LOAD_FAST_LOAD_FAST 2 25.0%
LOAD_ATTR 1 12.5%
LOAD_ATTR_INSTANCE_VALUE 1 12.5%
Successors Count Percentage
STORE_ATTR_INSTANCE_VALUE 4 50.0%
LOAD_CONST_IMMORTAL 3 37.5%
LOAD_FAST_LOAD_FAST 1 12.5%

STORE_DEREF

Successors and predecessors for STORE_DEREF
Predecessors Count Percentage
CALL_NON_PY_GENERAL 69 98.6%
CALL 1 1.4%
Successors Count Percentage
LOAD_FAST 70 100.0%

STORE_FAST

Successors and predecessors for STORE_FAST
Predecessors Count Percentage
RETURN_VALUE 8,738,267 48.8%
LOAD_FAST 8,733,900 48.7%
FOR_ITER_RANGE 432,161 2.4%
BUILD_LIST 4,159 0.0%
CALL_BUILTIN_FAST_WITH_KEYWORDS 4,158 0.0%
Successors Count Percentage
LOAD_FAST 8,742,498 48.8%
ENTER_EXECUTOR 8,313,904 46.4%
LOAD_GLOBAL_MODULE 436,363 2.4%
LOAD_GLOBAL_BUILTIN 420,103 2.3%
DELETE_FAST 4,159 0.0%

STORE_FAST_STORE_FAST

Successors and predecessors for STORE_FAST_STORE_FAST
Predecessors Count Percentage
UNPACK_SEQUENCE_TWO_TUPLE 69 98.6%
UNPACK_SEQUENCE 1 1.4%
Successors Count Percentage
LOAD_FAST 70 100.0%

UNPACK_SEQUENCE

Successors and predecessors for UNPACK_SEQUENCE
Predecessors Count Percentage
CALL_METHOD_DESCRIPTOR_NOARGS 21 95.5%
CALL 1 4.5%
Successors Count Percentage
UNPACK_SEQUENCE_TWO_TUPLE 21 95.5%
STORE_FAST_STORE_FAST 1 4.5%

RESUME

Successors and predecessors for RESUME
Predecessors Count Percentage
CALL 6 54.5%
CACHE 2 18.2%
CALL_FUNCTION_EX 1 9.1%
COPY_FREE_VARS 1 9.1%
MAKE_CELL 1 9.1%
Successors Count Percentage
LOAD_FAST 4 36.4%
LOAD_GLOBAL 2 18.2%
BUILD_LIST 1 9.1%
LOAD_DEREF 1 9.1%
LOAD_FAST_LOAD_FAST 1 9.1%

BINARY_OP_ADD_FLOAT

Successors and predecessors for BINARY_OP_ADD_FLOAT
Predecessors Count Percentage
BINARY_OP_SUBTRACT_FLOAT 4,154 100.0%
BINARY_OP 1 0.0%
Successors Count Percentage
STORE_FAST 4,155 100.0%

BINARY_OP_ADD_INT

Successors and predecessors for BINARY_OP_ADD_INT
Predecessors Count Percentage
LOAD_SMALL_INT 4,157 100.0%
BINARY_OP 1 0.0%
Successors Count Percentage
BINARY_OP_MULTIPLY_INT 4,157 100.0%
BINARY_OP 1 0.0%

BINARY_OP_MULTIPLY_INT

Successors and predecessors for BINARY_OP_MULTIPLY_INT
Predecessors Count Percentage
BINARY_OP_ADD_INT 4,157 100.0%
BINARY_OP 1 0.0%
Successors Count Percentage
COMPARE_OP_INT 4,157 100.0%
COMPARE_OP 1 0.0%

BINARY_OP_SUBTRACT_FLOAT

Successors and predecessors for BINARY_OP_SUBTRACT_FLOAT
Predecessors Count Percentage
LOAD_FAST 4,157 100.0%
BINARY_OP 1 0.0%
Successors Count Percentage
BINARY_OP_ADD_FLOAT 4,154 99.9%
BINARY_OP 4 0.1%

BINARY_SUBSCR_TUPLE_INT

Successors and predecessors for BINARY_SUBSCR_TUPLE_INT
Predecessors Count Percentage
LOAD_SMALL_INT 48 69.6%
BINARY_SUBSCR 21 30.4%
Successors Count Percentage
STORE_FAST 69 100.0%

CALL_ALLOC_AND_ENTER_INIT

Successors and predecessors for CALL_ALLOC_AND_ENTER_INIT
Predecessors Count Percentage
LOAD_GLOBAL_MODULE 428,001 100.0%
CALL 2 0.0%
Successors Count Percentage
ENTER_EXECUTOR 423,272 98.9%
RESUME_CHECK 4,731 1.1%

CALL_BUILTIN_CLASS

Successors and predecessors for CALL_BUILTIN_CLASS
Predecessors Count Percentage
LOAD_FAST 420,103 100.0%
CALL 23 0.0%
Successors Count Percentage
GET_ITER 420,126 100.0%

CALL_BUILTIN_FAST_WITH_KEYWORDS

Successors and predecessors for CALL_BUILTIN_FAST_WITH_KEYWORDS
Predecessors Count Percentage
PUSH_NULL 8,314 100.0%
CALL 2 0.0%
Successors Count Percentage
POP_TOP 4,158 50.0%
STORE_FAST 4,158 50.0%

CALL_LIST_APPEND

Successors and predecessors for CALL_LIST_APPEND
Predecessors Count Percentage
LOAD_FAST 415,898 100.0%
CALL 1 0.0%
Successors Count Percentage
LOAD_GLOBAL_MODULE 415,898 100.0%
LOAD_GLOBAL 1 0.0%

CALL_METHOD_DESCRIPTOR_NOARGS

Successors and predecessors for CALL_METHOD_DESCRIPTOR_NOARGS
Predecessors Count Percentage
LOAD_ATTR_METHOD_NO_DICT 48 69.6%
CALL 21 30.4%
Successors Count Percentage
UNPACK_SEQUENCE_TWO_TUPLE 48 69.6%
UNPACK_SEQUENCE 21 30.4%

CALL_METHOD_DESCRIPTOR_O

Successors and predecessors for CALL_METHOD_DESCRIPTOR_O
Predecessors Count Percentage
BUILD_TUPLE 48 69.6%
CALL 21 30.4%
Successors Count Percentage
POP_TOP 69 100.0%

CALL_NON_PY_GENERAL

Successors and predecessors for CALL_NON_PY_GENERAL
Predecessors Count Percentage
PUSH_NULL 8,410 98.7%
CALL 65 0.8%
LOAD_FAST_LOAD_FAST 48 0.6%
Successors Count Percentage
LOAD_FAST 4,158 48.8%
STORE_FAST 4,158 48.8%
POP_TOP 69 0.8%
RETURN_VALUE 69 0.8%
STORE_DEREF 69 0.8%

CALL_PY_EXACT_ARGS

Successors and predecessors for CALL_PY_EXACT_ARGS
Predecessors Count Percentage
LOAD_FAST 8,322,295 95.2%
LOAD_FAST_LOAD_FAST 420,151 4.8%
CALL 88 0.0%
LOAD_ATTR_INSTANCE_VALUE 48 0.0%
LOAD_CONST_IMMORTAL 48 0.0%
Successors Count Percentage
RESUME_CHECK 8,742,561 100.0%
COPY_FREE_VARS 69 0.0%

CALL_PY_GENERAL

Successors and predecessors for CALL_PY_GENERAL
Predecessors Count Percentage
LOAD_CONST_IMMORTAL 48 69.6%
CALL 21 30.4%
Successors Count Percentage
MAKE_CELL 69 100.0%

COMPARE_OP_INT

Successors and predecessors for COMPARE_OP_INT
Predecessors Count Percentage
LOAD_SMALL_INT 415,898 99.0%
BINARY_OP_MULTIPLY_INT 4,157 1.0%
COMPARE_OP 2 0.0%
Successors Count Percentage
POP_JUMP_IF_FALSE 420,057 100.0%

FOR_ITER_RANGE

Successors and predecessors for FOR_ITER_RANGE
Predecessors Count Percentage
GET_ITER 420,126 97.1%
JUMP_BACKWARD 12,346 2.9%
FOR_ITER 3 0.0%
Successors Count Percentage
STORE_FAST 432,161 99.9%
LOAD_FAST 314 0.1%

LOAD_ATTR_INSTANCE_VALUE

Successors and predecessors for LOAD_ATTR_INSTANCE_VALUE
Predecessors Count Percentage
LOAD_FAST_LOAD_FAST 8,322,345 100.0%
LOAD_FAST 165 0.0%
LOAD_ATTR 64 0.0%
Successors Count Percentage
STORE_ATTR_INSTANCE_VALUE 8,322,297 100.0%
LOAD_ATTR_METHOD_NO_DICT 96 0.0%
TO_BOOL 69 0.0%
CALL_PY_EXACT_ARGS 48 0.0%
LOAD_ATTR 42 0.0%

LOAD_ATTR_METHOD_NO_DICT

Successors and predecessors for LOAD_ATTR_METHOD_NO_DICT
Predecessors Count Percentage
LOAD_FAST 415,898 100.0%
LOAD_ATTR_INSTANCE_VALUE 96 0.0%
LOAD_ATTR 43 0.0%
Successors Count Percentage
LOAD_FAST 415,899 100.0%
LOAD_FAST_LOAD_FAST 69 0.0%
CALL_METHOD_DESCRIPTOR_NOARGS 48 0.0%
CALL 21 0.0%

LOAD_ATTR_METHOD_WITH_VALUES

Successors and predecessors for LOAD_ATTR_METHOD_WITH_VALUES
Predecessors Count Percentage
LOAD_FAST 8,322,391 100.0%
LOAD_ATTR 44 0.0%
Successors Count Percentage
LOAD_FAST 8,322,366 100.0%
LOAD_FAST_LOAD_FAST 69 0.0%

LOAD_ATTR_MODULE

Successors and predecessors for LOAD_ATTR_MODULE
Predecessors Count Percentage
LOAD_GLOBAL_MODULE 16,724 99.7%
LOAD_ATTR 46 0.3%
Successors Count Percentage
PUSH_NULL 16,770 100.0%

LOAD_CONST_IMMORTAL

Successors and predecessors for LOAD_CONST_IMMORTAL
Predecessors Count Percentage
STORE_ATTR_INSTANCE_VALUE 8,348,474 99.8%
RESUME_CHECK 13,088 0.2%
POP_TOP 4,509 0.1%
STORE_FAST 210 0.0%
LOAD_FAST 140 0.0%
Successors Count Percentage
RETURN_VALUE 8,339,897 99.7%
LOAD_FAST 26,178 0.3%
STORE_FAST 140 0.0%
LOAD_CONST_IMMORTAL 140 0.0%
IS_OP 70 0.0%

LOAD_GLOBAL_BUILTIN

Successors and predecessors for LOAD_GLOBAL_BUILTIN
Predecessors Count Percentage
STORE_FAST 420,103 100.0%
LOAD_GLOBAL 23 0.0%
Successors Count Percentage
LOAD_FAST 420,126 100.0%

LOAD_GLOBAL_MODULE

Successors and predecessors for LOAD_GLOBAL_MODULE
Predecessors Count Percentage
STORE_FAST 436,363 50.5%
CALL_LIST_APPEND 415,898 48.1%
POP_TOP 4,157 0.5%
DELETE_FAST 4,157 0.5%
LOAD_FAST 4,157 0.5%
Successors Count Percentage
CALL_ALLOC_AND_ENTER_INIT 428,001 49.5%
LOAD_FAST_LOAD_FAST 420,126 48.6%
LOAD_ATTR_MODULE 16,724 1.9%
LOAD_ATTR 46 0.0%
CALL 2 0.0%

RESUME_CHECK

Successors and predecessors for RESUME_CHECK
Predecessors Count Percentage
CALL_PY_EXACT_ARGS 8,742,561 99.8%
ENTER_EXECUTOR 8,355 0.1%
CALL_ALLOC_AND_ENTER_INIT 4,731 0.1%
CACHE 70 0.0%
CALL_FUNCTION_EX 69 0.0%
Successors Count Percentage
LOAD_FAST_LOAD_FAST 8,322,298 95.0%
LOAD_FAST 416,106 4.8%
LOAD_CONST_IMMORTAL 13,088 0.1%
BUILD_LIST 4,158 0.0%
LOAD_GLOBAL_MODULE 96 0.0%

STORE_ATTR_INSTANCE_VALUE

Successors and predecessors for STORE_ATTR_INSTANCE_VALUE
Predecessors Count Percentage
LOAD_FAST_LOAD_FAST 8,322,297 49.9%
LOAD_ATTR_INSTANCE_VALUE 8,322,297 49.9%
LOAD_FAST 26,174 0.2%
STORE_ATTR 4 0.0%
Successors Count Percentage
LOAD_CONST_IMMORTAL 8,348,474 50.1%
LOAD_FAST_LOAD_FAST 8,322,298 49.9%

TO_BOOL_BOOL

Successors and predecessors for TO_BOOL_BOOL
Predecessors Count Percentage
LOAD_FAST 48 69.6%
TO_BOOL 21 30.4%
Successors Count Percentage
POP_JUMP_IF_TRUE 69 100.0%

UNPACK_SEQUENCE_TWO_TUPLE

Successors and predecessors for UNPACK_SEQUENCE_TWO_TUPLE
Predecessors Count Percentage
CALL_METHOD_DESCRIPTOR_NOARGS 48 69.6%
UNPACK_SEQUENCE 21 30.4%
Successors Count Percentage
STORE_FAST_STORE_FAST 69 100.0%

ENTER_EXECUTOR

Successors and predecessors for ENTER_EXECUTOR
Predecessors Count Percentage
STORE_FAST 8,313,904 90.8%
CALL_ALLOC_AND_ENTER_INIT 423,272 4.6%
POP_TOP 411,804 4.5%
ENTER_EXECUTOR 4,261 0.0%
Successors Count Percentage
RETURN_VALUE 9,132,411 99.8%
RESUME_CHECK 8,355 0.1%
POP_TOP 8,214 0.1%
ENTER_EXECUTOR 4,261 0.0%

INTERPRETER_EXIT

Successors and predecessors for INTERPRETER_EXIT
Predecessors Count Percentage
RETURN_VALUE 2 100.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.

7 0.0%
hit

Specialized instructions that complete.

16,562 99.5%
miss

Specialized instructions that deopt.

67 0.4%
Success Count Ratio
Success 4 80.0%
Failure 1 20.0%
Failure kind Count Ratio
add different types 1 100.0%

BINARY_SUBSCR

specialization stats for BINARY_SUBSCR family
Kind Count Ratio
deferred

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

1 1.1%
hit

Specialized instructions that complete.

69 75.8%
Success Count Ratio
Success 21 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.

24 0.0%
hit

Specialized instructions that complete.

10,015,112 100.0%
Success Count Ratio
Success 244 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.

2 0.0%
hit

Specialized instructions that complete.

420,057 100.0%
Success Count Ratio
Success 2 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.

73 0.0%
hit

Specialized instructions that complete.

432,475 100.0%
Success Count Ratio
Success 3 60.0%
Failure 2 40.0%
Failure kind Count Ratio
dict values 2 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.

88 0.0%
hit

Specialized instructions that complete.

17,077,816 100.0%
Success Count Ratio
Success 197 90.0%
Failure 22 10.0%

LOAD_GLOBAL

specialization stats for LOAD_GLOBAL family
Kind Count Ratio
deferred

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

14 0.0%
hit

Specialized instructions that complete.

1,285,025 100.0%
Success Count Ratio
Success 94 100.0%
Failure 0 0.0%

STORE_ATTR

specialization stats for STORE_ATTR family
Kind Count Ratio
deferred

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

4 0.0%
hit

Specialized instructions that complete.

16,670,772 100.0%
Success Count Ratio
Success 8 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.

71 39.0%
hit

Specialized instructions that complete.

69 37.9%
Success Count Ratio
Success 21 50.0%
Failure 21 50.0%
Failure kind Count Ratio
sequence 21 100.0%

UNPACK_SEQUENCE

specialization stats for UNPACK_SEQUENCE family
Kind Count Ratio
deferred

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

1 1.1%
hit

Specialized instructions that complete.

69 75.8%
Success Count Ratio
Success 21 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.

116,237,787 64.8%
Not specialized

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

942 0.0%
Specialized hits

Specialized instructions, e.g. LOAD_ATTR_MODULE that complete.

63,044,844 35.2%
Specialized misses

Specialized instructions, e.g. LOAD_ATTR_MODULE that deopt.

4,332 0.0%

Deferred by instruction

Breakdown of deferred (not specialized) instruction counts by family
Name Count Ratio
LOAD_ATTR 88 30.9%
FOR_ITER 73 25.6%
TO_BOOL 71 24.9%
CALL 24 8.4%
LOAD_GLOBAL 14 4.9%
BINARY_OP 7 2.5%
STORE_ATTR 4 1.4%
COMPARE_OP 2 0.7%
BINARY_SUBSCR 1 0.4%
UNPACK_SEQUENCE 1 0.4%

Misses by instruction

Breakdown of misses (specialized deopts) instruction counts by family
Name Count Ratio
RESUME 4,265 49.6%
RESUME_CHECK 4,265 49.6%
BINARY_OP_ADD_FLOAT 67 0.8%
CACHE 0 0.0%
EXIT_INIT_CHECK 0 0.0%
GET_ITER 0 0.0%
MAKE_FUNCTION 0 0.0%
NOP 0 0.0%
POP_TOP 0 0.0%
PUSH_NULL 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 72 0.0%
Calls to Python functions inlined 17,888,277 100.0%
Calls via PyEval_EvalFrame (total) 72 0.0%
Calls via PyEval_EvalFrame (vector) 72 0.0%
Calls via PyEval_EvalFrame (generator) 0 0.0%
Calls via PyEval_EvalFrame (legacy) 0 0.0%
Calls via PyEval_EvalFrame (function vectorcall) 72 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) 70 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 26,622,247 148.8%

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 4,312 0.0%
Frees to freelist 21,468
Allocations 9,616,545 100.0%
Allocations to 512 bytes 9,616,541 100.0%
Allocations to 4 kbytes 4 0.0%
Allocations over 4 kbytes 0 0.0%
Frees 9,625,413
Inline values 8,733,900
Interpreter mortal increfs 160,165,897 84.8%
Interpreter mortal decrefs 151,869,550 60.1%
Mortal increfs 17,048,887 9.0%
Mortal decrefs 34,966,640 13.8%
Interpreter immortal increfs 10,423,775 5.5%
Interpreter immortal decrefs 64,090,702 25.4%
Immortal increfs 1,303,404 0.7%
Immortal decrefs 1,702,211 0.7%
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 237
Method cache misses 32
Method cache collisions 19
Method cache dunder hits 2
Method cache dunder misses 2

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 4,159 0 397,080,589 85,142,875 0
2 8,318 8,734,272 1,865,791,386 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.

2,251
Traces created

The number of traces that were successfully created.

4 0.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.

2,249 99.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 abandoned because it it too short.

2,247 99.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

17,862,383
Uops executed

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

272,355,672 1,524.7%
Count Ratio
Optimizer attempts

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

4
Optimizer successes

The number of traces that were successfully optimized.

4 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 0 0.0%
<= 32 3 75.0%
<= 64 1 25.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 3 75.0%
<= 32 0 0.0%
<= 64 1 25.0%

Trace run length histogram

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

Uop execution stats

uop execution stats
Name Count Self Cumulative Miss ratio
_LOAD_CONST_INLINE_BORROW 26,985,635 9.9% 9.9%
_LOAD_FAST_0 19,088,026 7.0% 16.9%
_GUARD_DORV_NO_DICT 18,264,824 6.7% 23.6%
_STORE_ATTR_INSTANCE_VALUE 18,264,824 6.7% 30.3%
_MAKE_WARM 17,862,383 6.6% 36.9%
_START_EXECUTOR 17,862,383 6.6% 43.4%
_SET_IP 17,443,206 6.4% 49.9%
_GUARD_TYPE_VERSION 9,955,614 3.7% 53.5%
_EXIT_TRACE 9,552,227 3.5% 57.0%
_GUARD_NOT_EXHAUSTED_RANGE 8,725,710 3.2% 60.2% 4.8%
_CHECK_PERIODIC 8,725,710 3.2% 63.4%
_CHECK_VALIDITY 8,725,710 3.2% 66.6%
_ITER_CHECK_RANGE 8,725,710 3.2% 69.8%
_TIER2_RESUME_CHECK 8,725,072 3.2% 73.0% 0.0%
_PUSH_FRAME 8,717,496 3.2% 76.2%
_CHECK_AND_ALLOCATE_OBJECT 8,305,895 3.0% 79.3%
_CHECK_FUNCTION 8,305,895 3.0% 82.3%
_CREATE_INIT_FRAME 8,305,895 3.0% 85.4%
_DYNAMIC_EXIT 8,305,895 3.0% 88.4%
_ITER_NEXT_RANGE 8,305,895 3.0% 91.5%
_LOAD_CONST_INLINE_WITH_NULL 8,305,895 3.0% 94.5%
_STORE_FAST_3 8,305,895 3.0% 97.6%
_POP_TOP 823,202 0.3% 97.9%
_RETURN_VALUE 411,601 0.2% 98.0%
_RESUME_CHECK 411,601 0.2% 98.2%
_CHECK_FUNCTION_EXACT_ARGS 411,601 0.2% 98.3%
_CHECK_FUNCTION_VERSION 411,601 0.2% 98.5%
_CHECK_MANAGED_OBJECT_HAS_VALUES 411,601 0.2% 98.6%
_CHECK_STACK_SPACE_OPERAND 411,601 0.2% 98.8%
_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT 411,601 0.2% 98.9%
_GUARD_KEYS_VERSION 411,601 0.2% 99.1%
_INIT_CALL_PY_EXACT_ARGS_1 411,601 0.2% 99.2%
_LOAD_ATTR_INSTANCE_VALUE_0 411,601 0.2% 99.4%
_LOAD_ATTR_METHOD_WITH_VALUES 411,601 0.2% 99.5%
_LOAD_FAST_1 411,601 0.2% 99.7%
_LOAD_FAST_2 411,601 0.2% 99.8%
_SAVE_RETURN_OFFSET 411,601 0.2% 100.0%
_DEOPT 4,261 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
_GUARD_DORV_NO_DICT _STORE_ATTR_INSTANCE_VALUE 18,264,824 6.7% 6.7%
_START_EXECUTOR _MAKE_WARM 17,862,383 6.6% 13.3%
_STORE_ATTR_INSTANCE_VALUE _LOAD_CONST_INLINE_BORROW 17,853,223 6.6% 19.8%
_LOAD_CONST_INLINE_BORROW _LOAD_FAST_0 17,441,622 6.4% 26.2%
_GUARD_TYPE_VERSION _GUARD_DORV_NO_DICT 9,544,013 3.5% 29.7%
_LOAD_CONST_INLINE_BORROW _EXIT_TRACE 9,132,412 3.4% 33.1%
_LOAD_FAST_0 _GUARD_TYPE_VERSION 9,132,412 3.4% 36.4%
_SET_IP _CHECK_PERIODIC 8,725,710 3.2% 39.6%
_CHECK_PERIODIC _CHECK_VALIDITY 8,725,710 3.2% 42.8%
_CHECK_VALIDITY _ITER_CHECK_RANGE 8,725,710 3.2% 46.0%
_ITER_CHECK_RANGE _GUARD_NOT_EXHAUSTED_RANGE 8,725,710 3.2% 49.2%
_MAKE_WARM _SET_IP 8,725,710 3.2% 52.5%
_MAKE_WARM _TIER2_RESUME_CHECK 8,725,072 3.2% 55.7%
_LOAD_FAST_0 _GUARD_DORV_NO_DICT 8,720,811 3.2% 58.9%
_TIER2_RESUME_CHECK _LOAD_CONST_INLINE_BORROW 8,720,811 3.2% 62.1%
_SET_IP _CHECK_AND_ALLOCATE_OBJECT 8,305,895 3.0% 65.1%
_CHECK_AND_ALLOCATE_OBJECT _CREATE_INIT_FRAME 8,305,895 3.0% 68.2%
_CHECK_FUNCTION _LOAD_CONST_INLINE_WITH_NULL 8,305,895 3.0% 71.2%
_CREATE_INIT_FRAME _PUSH_FRAME 8,305,895 3.0% 74.3%
_GUARD_NOT_EXHAUSTED_RANGE _ITER_NEXT_RANGE 8,305,895 3.0% 77.3%
_ITER_NEXT_RANGE _STORE_FAST_3 8,305,895 3.0% 80.4%
_LOAD_CONST_INLINE_WITH_NULL _SET_IP 8,305,895 3.0% 83.4%
_PUSH_FRAME _DYNAMIC_EXIT 8,305,895 3.0% 86.5%
_STORE_FAST_3 _CHECK_FUNCTION 8,305,895 3.0% 89.5%
_GUARD_NOT_EXHAUSTED_RANGE _EXIT_TRACE 419,815 0.2% 89.7%
_POP_TOP _LOAD_CONST_INLINE_BORROW 411,601 0.2% 89.8%
_POP_TOP _LOAD_FAST_2 411,601 0.2% 90.0%
_RETURN_VALUE _POP_TOP 411,601 0.2% 90.1%
_RESUME_CHECK _LOAD_FAST_1 411,601 0.2% 90.3%
_SET_IP _CHECK_FUNCTION_VERSION 411,601 0.2% 90.4%
_CHECK_FUNCTION_EXACT_ARGS _CHECK_STACK_SPACE_OPERAND 411,601 0.2% 90.6%
_CHECK_FUNCTION_VERSION _CHECK_FUNCTION_EXACT_ARGS 411,601 0.2% 90.7%
_CHECK_MANAGED_OBJECT_HAS_VALUES _LOAD_ATTR_INSTANCE_VALUE_0 411,601 0.2% 90.9%
_CHECK_STACK_SPACE_OPERAND _INIT_CALL_PY_EXACT_ARGS_1 411,601 0.2% 91.0%
_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT _GUARD_KEYS_VERSION 411,601 0.2% 91.2%
_GUARD_KEYS_VERSION _LOAD_ATTR_METHOD_WITH_VALUES 411,601 0.2% 91.3%
_GUARD_TYPE_VERSION _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT 411,601 0.2% 91.5%
_INIT_CALL_PY_EXACT_ARGS_1 _SAVE_RETURN_OFFSET 411,601 0.2% 91.6%
_LOAD_ATTR_INSTANCE_VALUE_0 _GUARD_TYPE_VERSION 411,601 0.2% 91.8%
_LOAD_ATTR_METHOD_WITH_VALUES _LOAD_FAST_0 411,601 0.2% 91.9%
_LOAD_CONST_INLINE_BORROW _RETURN_VALUE 411,601 0.2% 92.1%
_LOAD_FAST_0 _SET_IP 411,601 0.2% 92.2%
_LOAD_FAST_0 _CHECK_MANAGED_OBJECT_HAS_VALUES 411,601 0.2% 92.4%
_LOAD_FAST_0 _LOAD_FAST_0 411,601 0.2% 92.5%
_LOAD_FAST_1 _LOAD_FAST_0 411,601 0.2% 92.7%
_LOAD_FAST_2 _GUARD_TYPE_VERSION 411,601 0.2% 92.8%
_MAKE_WARM _POP_TOP 411,601 0.2% 93.0%
_PUSH_FRAME _RESUME_CHECK 411,601 0.2% 93.1%
_SAVE_RETURN_OFFSET _PUSH_FRAME 411,601 0.2% 93.3%
_STORE_ATTR_INSTANCE_VALUE _LOAD_FAST_0 411,601 0.2% 93.4%
_TIER2_RESUME_CHECK _DEOPT 4,261 0.0% 93.4%

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 21

Stats gathered on: 2024-12-15