- benchmark: gc_collect
- fork: python
- ref: a19bb261a327e1008f219b62f6465941c981899b
- commit hash: a19bb26
- commit date: 2024-06-15T19:10:50+00:00
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 | 54,809,040 | 18.6% | 18.6% | |
STORE_ATTR_INSTANCE_VALUE | 41,986,480 | 14.2% | 32.8% | |
STORE_FAST | 22,038,400 | 7.5% | 40.3% | |
LOAD_CONST | 22,021,200 | 7.5% | 47.7% | |
RESUME_CHECK | 21,505,720 | 7.3% | 55.0% | 0.0% |
RETURN_CONST | 21,505,280 | 7.3% | 62.3% | |
LOAD_FAST_LOAD_FAST | 21,000,080 | 7.1% | 69.4% | |
RETURN_VALUE | 10,757,240 | 3.6% | 73.1% | |
POP_TOP | 10,756,420 | 3.6% | 76.7% | |
ENTER_EXECUTOR | 10,756,100 | 3.6% | 80.4% | |
CALL_PY_EXACT_ARGS | 10,753,600 | 3.6% | 84.0% | |
EXIT_INIT_CHECK | 10,751,960 | 3.6% | 87.6% | |
CALL_ALLOC_AND_ENTER_INIT | 10,751,960 | 3.6% | 91.3% | |
LOAD_ATTR_INSTANCE_VALUE | 10,241,260 | 3.5% | 94.8% | |
LOAD_ATTR_METHOD_WITH_VALUES | 10,241,240 | 3.5% | 98.2% | |
LOAD_GLOBAL_MODULE | 1,041,100 | 0.4% | 98.6% | |
POP_JUMP_IF_FALSE | 517,120 | 0.2% | 98.8% | |
COMPARE_OP_INT | 517,080 | 0.2% | 98.9% | |
FOR_ITER_RANGE | 513,380 | 0.2% | 99.1% | |
GET_ITER | 512,480 | 0.2% | 99.3% | |
CALL_BUILTIN_CLASS | 512,420 | 0.2% | 99.5% | |
LOAD_GLOBAL_BUILTIN | 512,420 | 0.2% | 99.6% | |
CALL_LIST_APPEND | 511,980 | 0.2% | 99.8% | |
LOAD_ATTR_METHOD_NO_DICT | 511,980 | 0.2% | 100.0% | |
PUSH_NULL | 16,000 | 0.0% | 100.0% | |
LOAD_ATTR_MODULE | 15,740 | 0.0% | 100.0% | |
CALL_NON_PY_GENERAL | 10,260 | 0.0% | 100.0% | |
CALL_BUILTIN_FAST_WITH_KEYWORDS | 5,480 | 0.0% | 100.0% | |
DELETE_FAST | 5,120 | 0.0% | 100.0% | |
POP_JUMP_IF_NOT_NONE | 5,120 | 0.0% | 100.0% | |
BINARY_OP_ADD_FLOAT | 5,100 | 0.0% | 100.0% | 1.2% |
BINARY_OP_ADD_INT | 5,100 | 0.0% | 100.0% | |
BINARY_OP_MULTIPLY_INT | 5,100 | 0.0% | 100.0% | |
BINARY_OP_SUBTRACT_FLOAT | 5,100 | 0.0% | 100.0% | |
JUMP_BACKWARD | 1,020 | 0.0% | 100.0% | |
CALL | 600 | 0.0% | 100.0% | |
BUILD_LIST | 480 | 0.0% | 100.0% | |
LOAD_GLOBAL | 480 | 0.0% | 100.0% | |
LOAD_ATTR | 360 | 0.0% | 100.0% | |
LOAD_DEREF | 240 | 0.0% | 100.0% | |
BINARY_OP | 160 | 0.0% | 100.0% | |
CALL_FUNCTION_EX | 160 | 0.0% | 100.0% | |
STORE_ATTR | 160 | 0.0% | 100.0% | |
RESUME | 120 | 0.0% | 100.0% | 4,266.7% |
FOR_ITER | 120 | 0.0% | 100.0% | |
NOP | 80 | 0.0% | 100.0% | |
CALL_INTRINSIC_1 | 80 | 0.0% | 100.0% | |
COMPARE_OP | 80 | 0.0% | 100.0% | |
COPY_FREE_VARS | 80 | 0.0% | 100.0% | |
LIST_EXTEND | 80 | 0.0% | 100.0% | |
INTERPRETER_EXIT | 40 | 0.0% | 100.0% |
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_CONST LOAD_FAST | 21,504,000 | 7.3% | 7.3% |
LOAD_FAST STORE_ATTR_INSTANCE_VALUE | 21,503,920 | 7.3% | 14.6% |
STORE_ATTR_INSTANCE_VALUE RETURN_CONST | 20,993,240 | 7.1% | 21.7% |
STORE_FAST LOAD_FAST | 10,762,240 | 3.6% | 25.3% |
RETURN_VALUE STORE_FAST | 10,757,080 | 3.6% | 29.0% |
CALL_PY_EXACT_ARGS RESUME_CHECK | 10,753,600 | 3.6% | 32.6% |
RETURN_CONST POP_TOP | 10,753,280 | 3.6% | 36.3% |
RESUME_CHECK LOAD_CONST | 10,752,040 | 3.6% | 39.9% |
LOAD_FAST STORE_FAST | 10,752,000 | 3.6% | 43.6% |
STORE_ATTR_INSTANCE_VALUE LOAD_CONST | 10,751,980 | 3.6% | 47.2% |
EXIT_INIT_CHECK RETURN_VALUE | 10,751,960 | 3.6% | 50.8% |
RETURN_CONST EXIT_INIT_CHECK | 10,751,960 | 3.6% | 54.5% |
CALL_ALLOC_AND_ENTER_INIT RESUME_CHECK | 10,751,960 | 3.6% | 58.1% |
POP_TOP LOAD_FAST | 10,242,640 | 3.5% | 61.6% |
RESUME_CHECK LOAD_FAST_LOAD_FAST | 10,241,260 | 3.5% | 65.1% |
STORE_ATTR_INSTANCE_VALUE LOAD_FAST_LOAD_FAST | 10,241,260 | 3.5% | 68.5% |
LOAD_FAST_LOAD_FAST LOAD_ATTR_INSTANCE_VALUE | 10,241,240 | 3.5% | 72.0% |
LOAD_FAST_LOAD_FAST STORE_ATTR_INSTANCE_VALUE | 10,241,240 | 3.5% | 75.5% |
LOAD_ATTR_INSTANCE_VALUE STORE_ATTR_INSTANCE_VALUE | 10,241,240 | 3.5% | 79.0% |
LOAD_ATTR_METHOD_WITH_VALUES LOAD_FAST | 10,241,240 | 3.5% | 82.4% |
LOAD_FAST CALL_PY_EXACT_ARGS | 10,241,200 | 3.5% | 85.9% |
LOAD_FAST LOAD_ATTR_METHOD_WITH_VALUES | 10,241,200 | 3.5% | 89.4% |
STORE_FAST ENTER_EXECUTOR | 10,239,660 | 3.5% | 92.8% |
ENTER_EXECUTOR CALL_ALLOC_AND_ENTER_INIT | 10,238,900 | 3.5% | 96.3% |
STORE_FAST LOAD_GLOBAL_MODULE | 518,400 | 0.2% | 96.5% |
LOAD_FAST LOAD_CONST | 517,120 | 0.2% | 96.7% |
COMPARE_OP_INT POP_JUMP_IF_FALSE | 517,080 | 0.2% | 96.8% |
FOR_ITER_RANGE STORE_FAST | 513,380 | 0.2% | 97.0% |
LOAD_GLOBAL_MODULE CALL_ALLOC_AND_ENTER_INIT | 512,960 | 0.2% | 97.2% |
GET_ITER FOR_ITER_RANGE | 512,420 | 0.2% | 97.3% |
CALL_BUILTIN_CLASS GET_ITER | 512,420 | 0.2% | 97.5% |
LOAD_GLOBAL_BUILTIN LOAD_FAST | 512,420 | 0.2% | 97.7% |
LOAD_FAST CALL_BUILTIN_CLASS | 512,360 | 0.2% | 97.9% |
STORE_FAST LOAD_GLOBAL_BUILTIN | 512,360 | 0.2% | 98.0% |
LOAD_GLOBAL_MODULE LOAD_FAST_LOAD_FAST | 512,360 | 0.2% | 98.2% |
LOAD_FAST_LOAD_FAST CALL_PY_EXACT_ARGS | 512,320 | 0.2% | 98.4% |
POP_JUMP_IF_FALSE LOAD_FAST | 512,000 | 0.2% | 98.6% |
LOAD_ATTR_METHOD_NO_DICT LOAD_FAST | 511,980 | 0.2% | 98.7% |
RESUME_CHECK LOAD_FAST | 511,980 | 0.2% | 98.9% |
LOAD_CONST COMPARE_OP_INT | 511,960 | 0.2% | 99.1% |
LOAD_FAST CALL_LIST_APPEND | 511,960 | 0.2% | 99.3% |
LOAD_FAST LOAD_ATTR_METHOD_NO_DICT | 511,960 | 0.2% | 99.4% |
CALL_LIST_APPEND LOAD_GLOBAL_MODULE | 511,960 | 0.2% | 99.6% |
POP_TOP ENTER_EXECUTOR | 511,660 | 0.2% | 99.8% |
ENTER_EXECUTOR RETURN_CONST | 510,720 | 0.2% | 100.0% |
LOAD_ATTR_MODULE PUSH_NULL | 15,740 | 0.0% | 100.0% |
LOAD_GLOBAL_MODULE LOAD_ATTR_MODULE | 15,640 | 0.0% | 100.0% |
PUSH_NULL CALL_NON_PY_GENERAL | 10,200 | 0.0% | 100.0% |
PUSH_NULL CALL_BUILTIN_FAST_WITH_KEYWORDS | 5,440 | 0.0% | 100.0% |
LOAD_FAST POP_JUMP_IF_NOT_NONE | 5,120 | 0.0% | 100.0% |
LOAD_FAST_LOAD_FAST LOAD_FAST | 5,120 | 0.0% | 100.0% |
POP_JUMP_IF_NOT_NONE LOAD_FAST_LOAD_FAST | 5,120 | 0.0% | 100.0% |
STORE_FAST DELETE_FAST | 5,120 | 0.0% | 100.0% |
BINARY_OP_ADD_FLOAT STORE_FAST | 5,100 | 0.0% | 100.0% |
CALL_BUILTIN_FAST_WITH_KEYWORDS STORE_FAST | 5,100 | 0.0% | 100.0% |
CALL_NON_PY_GENERAL LOAD_FAST | 5,100 | 0.0% | 100.0% |
CALL_NON_PY_GENERAL STORE_FAST | 5,100 | 0.0% | 100.0% |
DELETE_FAST LOAD_GLOBAL_MODULE | 5,080 | 0.0% | 100.0% |
LOAD_CONST BINARY_OP_ADD_INT | 5,080 | 0.0% | 100.0% |
LOAD_FAST BINARY_OP_SUBTRACT_FLOAT | 5,080 | 0.0% | 100.0% |
LOAD_FAST LOAD_GLOBAL_MODULE | 5,080 | 0.0% | 100.0% |
BINARY_OP_ADD_INT BINARY_OP_MULTIPLY_INT | 5,080 | 0.0% | 100.0% |
BINARY_OP_MULTIPLY_INT COMPARE_OP_INT | 5,080 | 0.0% | 100.0% |
BINARY_OP_SUBTRACT_FLOAT BINARY_OP_ADD_FLOAT | 5,080 | 0.0% | 100.0% |
POP_JUMP_IF_FALSE ENTER_EXECUTOR | 4,780 | 0.0% | 100.0% |
ENTER_EXECUTOR RETURN_VALUE | 3,840 | 0.0% | 100.0% |
ENTER_EXECUTOR POP_TOP | 2,640 | 0.0% | 100.0% |
LOAD_FAST RETURN_VALUE | 1,360 | 0.0% | 100.0% |
POP_TOP RETURN_CONST | 1,280 | 0.0% | 100.0% |
JUMP_BACKWARD FOR_ITER_RANGE | 900 | 0.0% | 100.0% |
BUILD_LIST STORE_FAST | 400 | 0.0% | 100.0% |
CALL_BUILTIN_FAST_WITH_KEYWORDS POP_TOP | 380 | 0.0% | 100.0% |
RESUME_CHECK BUILD_LIST | 380 | 0.0% | 100.0% |
POP_TOP LOAD_GLOBAL_MODULE | 360 | 0.0% | 100.0% |
POP_TOP JUMP_BACKWARD | 340 | 0.0% | 100.0% |
POP_JUMP_IF_FALSE JUMP_BACKWARD | 340 | 0.0% | 100.0% |
STORE_FAST JUMP_BACKWARD | 340 | 0.0% | 100.0% |
STORE_FAST LOAD_GLOBAL | 280 | 0.0% | 100.0% |
LOAD_FAST CALL | 240 | 0.0% | 100.0% |
PUSH_NULL CALL | 200 | 0.0% | 100.0% |
LOAD_GLOBAL LOAD_GLOBAL_MODULE | 180 | 0.0% | 100.0% |
PUSH_NULL LOAD_FAST | 160 | 0.0% | 100.0% |
LOAD_DEREF PUSH_NULL | 160 | 0.0% | 100.0% |
LOAD_FAST LOAD_ATTR | 120 | 0.0% | 100.0% |
LOAD_ATTR PUSH_NULL | 100 | 0.0% | 100.0% |
LOAD_ATTR LOAD_ATTR_MODULE | 100 | 0.0% | 100.0% |
LOAD_GLOBAL LOAD_ATTR | 100 | 0.0% | 100.0% |
LOAD_GLOBAL_MODULE LOAD_ATTR | 100 | 0.0% | 100.0% |
NOP LOAD_DEREF | 80 | 0.0% | 100.0% |
POP_TOP NOP | 80 | 0.0% | 100.0% |
RETURN_VALUE RETURN_VALUE | 80 | 0.0% | 100.0% |
BUILD_LIST LOAD_DEREF | 80 | 0.0% | 100.0% |
CALL STORE_FAST | 80 | 0.0% | 100.0% |
CALL CALL_PY_EXACT_ARGS | 80 | 0.0% | 100.0% |
CALL_FUNCTION_EX COPY_FREE_VARS | 80 | 0.0% | 100.0% |
CALL_INTRINSIC_1 CALL_FUNCTION_EX | 80 | 0.0% | 100.0% |
LIST_EXTEND CALL_INTRINSIC_1 | 80 | 0.0% | 100.0% |
LOAD_CONST STORE_FAST | 80 | 0.0% | 100.0% |
LOAD_DEREF LIST_EXTEND | 80 | 0.0% | 100.0% |
LOAD_FAST BUILD_LIST | 80 | 0.0% | 100.0% |
Top 5 predecessors and successors of each Tier 1 opcode.
This does not include the unspecialized instructions that occur after a specialized instruction deoptimizes.
Successors and predecessors for CACHE
Successors | Count | Percentage |
---|---|---|
RESUME | 20 | 50.0% |
RESUME_CHECK | 20 | 50.0% |
Successors and predecessors for EXIT_INIT_CHECK
Predecessors | Count | Percentage |
---|---|---|
RETURN_CONST | 10,751,960 | 100.0% |
Successors | Count | Percentage |
---|---|---|
RETURN_VALUE | 10,751,960 | 100.0% |
Successors and predecessors for GET_ITER
Predecessors | Count | Percentage |
---|---|---|
CALL_BUILTIN_CLASS | 512,420 | 100.0% |
CALL | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
FOR_ITER_RANGE | 512,420 | 100.0% |
FOR_ITER | 60 | 0.0% |
Successors and predecessors for INTERPRETER_EXIT
Predecessors | Count | Percentage |
---|---|---|
RETURN_CONST | 40 | 100.0% |
Successors and predecessors for NOP
Predecessors | Count | Percentage |
---|---|---|
POP_TOP | 80 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_DEREF | 80 | 100.0% |
Successors and predecessors for POP_TOP
Predecessors | Count | Percentage |
---|---|---|
RETURN_CONST | 10,753,280 | 100.0% |
ENTER_EXECUTOR | 2,640 | 0.0% |
CALL_BUILTIN_FAST_WITH_KEYWORDS | 380 | 0.0% |
CALL | 60 | 0.0% |
CALL_NON_PY_GENERAL | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 10,242,640 | 95.2% |
ENTER_EXECUTOR | 511,660 | 4.8% |
RETURN_CONST | 1,280 | 0.0% |
LOAD_GLOBAL_MODULE | 360 | 0.0% |
JUMP_BACKWARD | 340 | 0.0% |
Successors and predecessors for PUSH_NULL
Predecessors | Count | Percentage |
---|---|---|
LOAD_ATTR_MODULE | 15,740 | 98.4% |
LOAD_DEREF | 160 | 1.0% |
LOAD_ATTR | 100 | 0.6% |
Successors | Count | Percentage |
---|---|---|
CALL_NON_PY_GENERAL | 10,200 | 63.7% |
CALL_BUILTIN_FAST_WITH_KEYWORDS | 5,440 | 34.0% |
CALL | 200 | 1.2% |
LOAD_FAST | 160 | 1.0% |
Successors and predecessors for RETURN_VALUE
Predecessors | Count | Percentage |
---|---|---|
EXIT_INIT_CHECK | 10,751,960 | 100.0% |
ENTER_EXECUTOR | 3,840 | 0.0% |
LOAD_FAST | 1,360 | 0.0% |
RETURN_VALUE | 80 | 0.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 10,757,080 | 100.0% |
RETURN_VALUE | 80 | 0.0% |
LOAD_GLOBAL | 40 | 0.0% |
LOAD_GLOBAL_MODULE | 40 | 0.0% |
Successors and predecessors for BINARY_OP
Predecessors | Count | Percentage |
---|---|---|
BINARY_OP | 40 | 25.0% |
LOAD_CONST | 40 | 25.0% |
LOAD_FAST | 40 | 25.0% |
BINARY_OP_ADD_INT | 20 | 12.5% |
BINARY_OP_SUBTRACT_FLOAT | 20 | 12.5% |
Successors | Count | Percentage |
---|---|---|
BINARY_OP | 40 | 25.0% |
COMPARE_OP | 20 | 12.5% |
STORE_FAST | 20 | 12.5% |
BINARY_OP_ADD_FLOAT | 20 | 12.5% |
BINARY_OP_ADD_INT | 20 | 12.5% |
Successors and predecessors for BUILD_LIST
Predecessors | Count | Percentage |
---|---|---|
RESUME_CHECK | 380 | 79.2% |
LOAD_FAST | 80 | 16.7% |
RESUME | 20 | 4.2% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 400 | 83.3% |
LOAD_DEREF | 80 | 16.7% |
Successors and predecessors for CALL
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 240 | 40.0% |
PUSH_NULL | 200 | 33.3% |
LOAD_FAST_LOAD_FAST | 80 | 13.3% |
LOAD_GLOBAL | 40 | 6.7% |
LOAD_GLOBAL_MODULE | 40 | 6.7% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 80 | 13.3% |
CALL_PY_EXACT_ARGS | 80 | 13.3% |
GET_ITER | 60 | 10.0% |
POP_TOP | 60 | 10.0% |
RESUME | 60 | 10.0% |
Successors and predecessors for CALL_FUNCTION_EX
Predecessors | Count | Percentage |
---|---|---|
CALL_INTRINSIC_1 | 80 | 50.0% |
LOAD_FAST | 80 | 50.0% |
Successors | Count | Percentage |
---|---|---|
COPY_FREE_VARS | 80 | 50.0% |
RESUME_CHECK | 60 | 37.5% |
RESUME | 20 | 12.5% |
Successors and predecessors for CALL_INTRINSIC_1
Predecessors | Count | Percentage |
---|---|---|
LIST_EXTEND | 80 | 100.0% |
Successors | Count | Percentage |
---|---|---|
CALL_FUNCTION_EX | 80 | 100.0% |
Successors and predecessors for COMPARE_OP
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 40 | 50.0% |
BINARY_OP | 20 | 25.0% |
BINARY_OP_MULTIPLY_INT | 20 | 25.0% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 40 | 50.0% |
COMPARE_OP_INT | 40 | 50.0% |
Successors and predecessors for COPY_FREE_VARS
Predecessors | Count | Percentage |
---|---|---|
CALL_FUNCTION_EX | 80 | 100.0% |
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 60 | 75.0% |
RESUME | 20 | 25.0% |
Successors and predecessors for DELETE_FAST
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 5,120 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 5,080 | 99.2% |
LOAD_GLOBAL | 40 | 0.8% |
Successors and predecessors for ENTER_EXECUTOR
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 10,239,660 | 95.2% |
POP_TOP | 511,660 | 4.8% |
POP_JUMP_IF_FALSE | 4,780 | 0.0% |
Successors | Count | Percentage |
---|---|---|
CALL_ALLOC_AND_ENTER_INIT | 10,238,900 | 95.2% |
RETURN_CONST | 510,720 | 4.7% |
RETURN_VALUE | 3,840 | 0.0% |
POP_TOP | 2,640 | 0.0% |
Successors and predecessors for FOR_ITER
Predecessors | Count | Percentage |
---|---|---|
GET_ITER | 60 | 50.0% |
JUMP_BACKWARD | 60 | 50.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 60 | 50.0% |
FOR_ITER_RANGE | 60 | 50.0% |
Successors and predecessors for JUMP_BACKWARD
Predecessors | Count | Percentage |
---|---|---|
POP_TOP | 340 | 33.3% |
POP_JUMP_IF_FALSE | 340 | 33.3% |
STORE_FAST | 340 | 33.3% |
Successors | Count | Percentage |
---|---|---|
FOR_ITER_RANGE | 900 | 88.2% |
FOR_ITER | 60 | 5.9% |
CALL_ALLOC_AND_ENTER_INIT | 60 | 5.9% |
Successors and predecessors for LIST_EXTEND
Predecessors | Count | Percentage |
---|---|---|
LOAD_DEREF | 80 | 100.0% |
Successors | Count | Percentage |
---|---|---|
CALL_INTRINSIC_1 | 80 | 100.0% |
Successors and predecessors for LOAD_ATTR
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 120 | 33.3% |
LOAD_GLOBAL | 100 | 27.8% |
LOAD_GLOBAL_MODULE | 100 | 27.8% |
LOAD_FAST_LOAD_FAST | 40 | 11.1% |
Successors | Count | Percentage |
---|---|---|
PUSH_NULL | 100 | 27.8% |
LOAD_ATTR_MODULE | 100 | 27.8% |
LOAD_FAST | 60 | 16.7% |
LOAD_ATTR_METHOD_WITH_VALUES | 40 | 11.1% |
STORE_ATTR | 20 | 5.6% |
Successors and predecessors for LOAD_CONST
Predecessors | Count | Percentage |
---|---|---|
RESUME_CHECK | 10,752,040 | 48.8% |
STORE_ATTR_INSTANCE_VALUE | 10,751,980 | 48.8% |
LOAD_FAST | 517,120 | 2.3% |
RESUME | 40 | 0.0% |
STORE_ATTR | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 21,504,000 | 97.7% |
COMPARE_OP_INT | 511,960 | 2.3% |
BINARY_OP_ADD_INT | 5,080 | 0.0% |
STORE_FAST | 80 | 0.0% |
BINARY_OP | 40 | 0.0% |
Successors and predecessors for LOAD_DEREF
Predecessors | Count | Percentage |
---|---|---|
NOP | 80 | 33.3% |
BUILD_LIST | 80 | 33.3% |
RESUME_CHECK | 60 | 25.0% |
RESUME | 20 | 8.3% |
Successors | Count | Percentage |
---|---|---|
PUSH_NULL | 160 | 66.7% |
LIST_EXTEND | 80 | 33.3% |
Successors and predecessors for LOAD_FAST
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 21,504,000 | 39.2% |
STORE_FAST | 10,762,240 | 19.6% |
POP_TOP | 10,242,640 | 18.7% |
LOAD_ATTR_METHOD_WITH_VALUES | 10,241,240 | 18.7% |
LOAD_GLOBAL_BUILTIN | 512,420 | 0.9% |
Successors | Count | Percentage |
---|---|---|
STORE_ATTR_INSTANCE_VALUE | 21,503,920 | 39.2% |
STORE_FAST | 10,752,000 | 19.6% |
CALL_PY_EXACT_ARGS | 10,241,200 | 18.7% |
LOAD_ATTR_METHOD_WITH_VALUES | 10,241,200 | 18.7% |
LOAD_CONST | 517,120 | 0.9% |
Successors and predecessors for LOAD_FAST_LOAD_FAST
Predecessors | Count | Percentage |
---|---|---|
RESUME_CHECK | 10,241,260 | 48.8% |
STORE_ATTR_INSTANCE_VALUE | 10,241,260 | 48.8% |
LOAD_GLOBAL_MODULE | 512,360 | 2.4% |
POP_JUMP_IF_NOT_NONE | 5,120 | 0.0% |
LOAD_GLOBAL | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_ATTR_INSTANCE_VALUE | 10,241,240 | 48.8% |
STORE_ATTR_INSTANCE_VALUE | 10,241,240 | 48.8% |
CALL_PY_EXACT_ARGS | 512,320 | 2.4% |
LOAD_FAST | 5,120 | 0.0% |
CALL | 80 | 0.0% |
Successors and predecessors for LOAD_GLOBAL
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 280 | 58.3% |
POP_TOP | 60 | 12.5% |
RETURN_VALUE | 40 | 8.3% |
DELETE_FAST | 40 | 8.3% |
LOAD_FAST | 40 | 8.3% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 180 | 37.5% |
LOAD_ATTR | 100 | 20.8% |
LOAD_FAST | 60 | 12.5% |
LOAD_GLOBAL_BUILTIN | 60 | 12.5% |
CALL | 40 | 8.3% |
Successors and predecessors for POP_JUMP_IF_FALSE
Predecessors | Count | Percentage |
---|---|---|
COMPARE_OP_INT | 517,080 | 100.0% |
COMPARE_OP | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 512,000 | 99.0% |
ENTER_EXECUTOR | 4,780 | 0.9% |
JUMP_BACKWARD | 340 | 0.1% |
Successors and predecessors for POP_JUMP_IF_NOT_NONE
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 5,120 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 5,120 | 100.0% |
Successors and predecessors for RETURN_CONST
Predecessors | Count | Percentage |
---|---|---|
STORE_ATTR_INSTANCE_VALUE | 20,993,240 | 97.6% |
ENTER_EXECUTOR | 510,720 | 2.4% |
POP_TOP | 1,280 | 0.0% |
STORE_ATTR | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 10,753,280 | 50.0% |
EXIT_INIT_CHECK | 10,751,960 | 50.0% |
INTERPRETER_EXIT | 40 | 0.0% |
Successors and predecessors for STORE_ATTR
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 80 | 50.0% |
LOAD_FAST_LOAD_FAST | 40 | 25.0% |
LOAD_ATTR | 20 | 12.5% |
LOAD_ATTR_INSTANCE_VALUE | 20 | 12.5% |
Successors | Count | Percentage |
---|---|---|
STORE_ATTR_INSTANCE_VALUE | 80 | 50.0% |
RETURN_CONST | 40 | 25.0% |
LOAD_CONST | 20 | 12.5% |
LOAD_FAST_LOAD_FAST | 20 | 12.5% |
Successors and predecessors for STORE_FAST
Predecessors | Count | Percentage |
---|---|---|
RETURN_VALUE | 10,757,080 | 48.8% |
LOAD_FAST | 10,752,000 | 48.8% |
FOR_ITER_RANGE | 513,380 | 2.3% |
BINARY_OP_ADD_FLOAT | 5,100 | 0.0% |
CALL_BUILTIN_FAST_WITH_KEYWORDS | 5,100 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 10,762,240 | 48.8% |
ENTER_EXECUTOR | 10,239,660 | 46.5% |
LOAD_GLOBAL_MODULE | 518,400 | 2.4% |
LOAD_GLOBAL_BUILTIN | 512,360 | 2.3% |
DELETE_FAST | 5,120 | 0.0% |
Successors and predecessors for RESUME
Predecessors | Count | Percentage |
---|---|---|
CALL | 60 | 50.0% |
CACHE | 20 | 16.7% |
CALL_FUNCTION_EX | 20 | 16.7% |
COPY_FREE_VARS | 20 | 16.7% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST | 40 | 33.3% |
BUILD_LIST | 20 | 16.7% |
LOAD_DEREF | 20 | 16.7% |
LOAD_FAST | 20 | 16.7% |
LOAD_FAST_LOAD_FAST | 20 | 16.7% |
Successors and predecessors for BINARY_OP_ADD_FLOAT
Predecessors | Count | Percentage |
---|---|---|
BINARY_OP_SUBTRACT_FLOAT | 5,080 | 99.6% |
BINARY_OP | 20 | 0.4% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 5,100 | 100.0% |
Successors and predecessors for BINARY_OP_ADD_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 5,080 | 99.6% |
BINARY_OP | 20 | 0.4% |
Successors | Count | Percentage |
---|---|---|
BINARY_OP_MULTIPLY_INT | 5,080 | 99.6% |
BINARY_OP | 20 | 0.4% |
Successors and predecessors for BINARY_OP_MULTIPLY_INT
Predecessors | Count | Percentage |
---|---|---|
BINARY_OP_ADD_INT | 5,080 | 99.6% |
BINARY_OP | 20 | 0.4% |
Successors | Count | Percentage |
---|---|---|
COMPARE_OP_INT | 5,080 | 99.6% |
COMPARE_OP | 20 | 0.4% |
Successors and predecessors for BINARY_OP_SUBTRACT_FLOAT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 5,080 | 99.6% |
BINARY_OP | 20 | 0.4% |
Successors | Count | Percentage |
---|---|---|
BINARY_OP_ADD_FLOAT | 5,080 | 99.6% |
BINARY_OP | 20 | 0.4% |
Successors and predecessors for CALL_ALLOC_AND_ENTER_INIT
Predecessors | Count | Percentage |
---|---|---|
ENTER_EXECUTOR | 10,238,900 | 95.2% |
LOAD_GLOBAL_MODULE | 512,960 | 4.8% |
JUMP_BACKWARD | 60 | 0.0% |
CALL | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 10,751,960 | 100.0% |
Successors and predecessors for CALL_BUILTIN_CLASS
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 512,360 | 100.0% |
CALL | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
GET_ITER | 512,420 | 100.0% |
Successors and predecessors for CALL_BUILTIN_FAST_WITH_KEYWORDS
Predecessors | Count | Percentage |
---|---|---|
PUSH_NULL | 5,440 | 99.3% |
CALL | 40 | 0.7% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 5,100 | 93.1% |
POP_TOP | 380 | 6.9% |
Successors and predecessors for CALL_LIST_APPEND
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 511,960 | 100.0% |
CALL | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 511,960 | 100.0% |
LOAD_GLOBAL | 20 | 0.0% |
Successors and predecessors for CALL_NON_PY_GENERAL
Predecessors | Count | Percentage |
---|---|---|
PUSH_NULL | 10,200 | 99.4% |
CALL | 60 | 0.6% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 5,100 | 49.7% |
STORE_FAST | 5,100 | 49.7% |
POP_TOP | 60 | 0.6% |
Successors and predecessors for CALL_PY_EXACT_ARGS
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 10,241,200 | 95.2% |
LOAD_FAST_LOAD_FAST | 512,320 | 4.8% |
CALL | 80 | 0.0% |
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 10,753,600 | 100.0% |
Successors and predecessors for COMPARE_OP_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 511,960 | 99.0% |
BINARY_OP_MULTIPLY_INT | 5,080 | 1.0% |
COMPARE_OP | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 517,080 | 100.0% |
Successors and predecessors for FOR_ITER_RANGE
Predecessors | Count | Percentage |
---|---|---|
GET_ITER | 512,420 | 99.8% |
JUMP_BACKWARD | 900 | 0.2% |
FOR_ITER | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 513,380 | 100.0% |
Successors and predecessors for LOAD_ATTR_INSTANCE_VALUE
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 10,241,240 | 100.0% |
LOAD_ATTR | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
STORE_ATTR_INSTANCE_VALUE | 10,241,240 | 100.0% |
STORE_ATTR | 20 | 0.0% |
Successors and predecessors for LOAD_ATTR_METHOD_NO_DICT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 511,960 | 100.0% |
LOAD_ATTR | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 511,980 | 100.0% |
Successors and predecessors for LOAD_ATTR_METHOD_WITH_VALUES
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 10,241,200 | 100.0% |
LOAD_ATTR | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 10,241,240 | 100.0% |
Successors and predecessors for LOAD_ATTR_MODULE
Predecessors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 15,640 | 99.4% |
LOAD_ATTR | 100 | 0.6% |
Successors | Count | Percentage |
---|---|---|
PUSH_NULL | 15,740 | 100.0% |
Successors and predecessors for LOAD_GLOBAL_BUILTIN
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 512,360 | 100.0% |
LOAD_GLOBAL | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 512,420 | 100.0% |
Successors and predecessors for LOAD_GLOBAL_MODULE
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 518,400 | 49.8% |
CALL_LIST_APPEND | 511,960 | 49.2% |
DELETE_FAST | 5,080 | 0.5% |
LOAD_FAST | 5,080 | 0.5% |
POP_TOP | 360 | 0.0% |
Successors | Count | Percentage |
---|---|---|
CALL_ALLOC_AND_ENTER_INIT | 512,960 | 49.3% |
LOAD_FAST_LOAD_FAST | 512,360 | 49.2% |
LOAD_ATTR_MODULE | 15,640 | 1.5% |
LOAD_ATTR | 100 | 0.0% |
CALL | 40 | 0.0% |
Successors and predecessors for RESUME_CHECK
Predecessors | Count | Percentage |
---|---|---|
CALL_PY_EXACT_ARGS | 10,753,600 | 50.0% |
CALL_ALLOC_AND_ENTER_INIT | 10,751,960 | 50.0% |
CALL_FUNCTION_EX | 60 | 0.0% |
COPY_FREE_VARS | 60 | 0.0% |
CACHE | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST | 10,752,040 | 50.0% |
LOAD_FAST_LOAD_FAST | 10,241,260 | 47.6% |
LOAD_FAST | 511,980 | 2.4% |
BUILD_LIST | 380 | 0.0% |
LOAD_DEREF | 60 | 0.0% |
Successors and predecessors for STORE_ATTR_INSTANCE_VALUE
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 21,503,920 | 51.2% |
LOAD_FAST_LOAD_FAST | 10,241,240 | 24.4% |
LOAD_ATTR_INSTANCE_VALUE | 10,241,240 | 24.4% |
STORE_ATTR | 80 | 0.0% |
Successors | Count | Percentage |
---|---|---|
RETURN_CONST | 20,993,240 | 50.0% |
LOAD_CONST | 10,751,980 | 25.6% |
LOAD_FAST_LOAD_FAST | 10,241,260 | 24.4% |
Specialization stats by family
specialization stats for BINARY_OP family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
140 | 0.7% |
hit
ⓘSpecialized instructions that complete. |
20,340 | 98.9% |
miss
ⓘSpecialized instructions that deopt. |
60 | 0.3% |
Success | Count | Ratio |
---|---|---|
Success | 80 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for CALL family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
300 | 0.0% |
hit
ⓘSpecialized instructions that complete. |
22,535,440 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 300 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for COMPARE_OP family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
40 | 0.0% |
hit
ⓘSpecialized instructions that complete. |
517,080 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 40 | 100.0% |
Failure | 0 | 0.0% |
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. |
513,380 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 60 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for LOAD_ATTR family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
180 | 0.0% |
hit
ⓘSpecialized instructions that complete. |
21,010,220 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 180 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for LOAD_GLOBAL family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
240 | 0.0% |
hit
ⓘSpecialized instructions that complete. |
1,553,520 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 240 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for POP_JUMP_IF_FALSE family
specialization stats for POP_JUMP_IF_NOT_NONE family
specialization stats for STORE_ATTR family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
80 | 0.0% |
hit
ⓘSpecialized instructions that complete. |
41,986,480 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 80 | 100.0% |
Failure | 0 | 0.0% |
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. |
184,931,700 | 62.7% |
Not specialized
ⓘInstructions that could be specialized but aren't, e.g. |
524,200 | 0.2% |
Specialized hits
ⓘSpecialized instructions, e.g. |
109,647,320 | 37.2% |
Specialized misses
ⓘSpecialized instructions, e.g. |
5,180 | 0.0% |
Breakdown of deferred (not specialized) instruction counts by family
Name | Count | Ratio |
---|---|---|
CALL | 300 | 28.8% |
LOAD_GLOBAL | 240 | 23.1% |
LOAD_ATTR | 180 | 17.3% |
BINARY_OP | 140 | 13.5% |
STORE_ATTR | 80 | 7.7% |
FOR_ITER | 60 | 5.8% |
COMPARE_OP | 40 | 3.8% |
BINARY_SLICE | 0 | 0.0% |
STORE_SLICE | 0 | 0.0% |
CACHE | 0 | 0.0% |
Breakdown of misses (specialized deopts) instruction counts by family
Name | Count | Ratio |
---|---|---|
RESUME | 5,120 | 49.7% |
RESUME_CHECK | 5,120 | 49.7% |
BINARY_OP_ADD_FLOAT | 60 | 0.6% |
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% |
PUSH_NULL | 0 | 0.0% |
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 | 40 | 0.0% |
Calls to Python functions inlined | 22,021,240 | 100.0% |
Calls via PyEval_EvalFrame (total) | 40 | 0.0% |
Calls via PyEval_EvalFrame (vector) | 40 | 0.0% |
Calls via PyEval_EvalFrame (generator) | 0 | 0.0% |
Calls via PyEval_EvalFrame (legacy) | 0 | 0.0% |
Calls via PyEval_EvalFrame (function vectorcall) | 40 | 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) | 160 | 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 | 32,773,240 | 148.8% |
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 | 60 | 0.0% |
Frees to freelist | 16,180 | |
Allocations | 11,843,100 | 100.0% |
Allocations to 512 bytes | 11,843,060 | 100.0% |
Allocations to 4 kbytes | 40 | 0.0% |
Allocations over 4 kbytes | 0 | 0.0% |
Frees | 11,855,862 | |
Inline values | 10,752,000 | |
Interpreter increfs | 186,447,260 | 89.9% |
Interpreter decrefs | 176,243,920 | 80.4% |
Increfs | 20,993,780 | 10.1% |
Decrefs | 43,045,744 | 19.6% |
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 | 339 | |
Method cache misses | 81 | |
Method cache collisions | 54 | |
Method cache dunder hits | 40 | |
Method cache dunder misses | 40 |
GC collections and effectiveness
Collected/visits gives some measure of efficiency.
Generation | Collections | Objects collected | Object visits |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 0 | 0 | 62,402,680 |
2 | 0 | 10,753,920 | 1,287,930,952 |
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. |
3,060 | |
Traces created
ⓘThe number of traces that were successfully created. |
100 | 3.3% |
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. |
280 | 9.2% |
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. |
2,960 | 96.7% |
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 |
22,026,920 | |
Uops executed
ⓘThe total number of uops (micro-operations) that were executed |
121,997,560 | 553.9% |
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
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
<= 2 | 0 | 0.0% |
<= 4 | 0 | 0.0% |
<= 8 | 20 | 20.0% |
<= 16 | 40 | 40.0% |
<= 32 | 0 | 0.0% |
<= 64 | 40 | 40.0% |
optimized trace length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
<= 2 | 0 | 0.0% |
<= 4 | 20 | 20.0% |
<= 8 | 0 | 0.0% |
<= 16 | 40 | 40.0% |
<= 32 | 20 | 20.0% |
<= 64 | 20 | 20.0% |
trace run length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
<= 2 | 0 | 0.0% |
<= 4 | 3,840 | 0.0% |
<= 8 | 517,200 | 2.3% |
<= 16 | 10,234,240 | 46.5% |
<= 32 | 510,720 | 2.3% |
<= 64 | 4,720 | 0.0% |
uop execution stats
Name | Count | Self | Cumulative | Miss ratio |
---|---|---|---|---|
_EXIT_TRACE | 11,270,720 | 9.2% | 9.2% | |
_START_EXECUTOR | 11,270,720 | 9.2% | 18.5% | |
_GUARD_NOT_EXHAUSTED_RANGE | 10,760,880 | 8.8% | 27.3% | 4.8% |
_ITER_CHECK_RANGE | 10,760,880 | 8.8% | 36.1% | |
_COLD_EXIT | 10,756,200 | 8.8% | 44.9% | |
_TIER2_RESUME_CHECK | 10,756,160 | 8.8% | 53.8% | |
_ITER_NEXT_RANGE | 10,243,680 | 8.4% | 62.1% | |
_LOAD_CONST_INLINE_WITH_NULL | 10,243,680 | 8.4% | 70.5% | |
_CHECK_FUNCTION | 10,238,960 | 8.4% | 78.9% | |
_STORE_FAST_3 | 10,238,960 | 8.4% | 87.3% | |
_LOAD_FAST_0 | 2,047,600 | 1.7% | 89.0% | |
_GUARD_TYPE_VERSION | 2,042,880 | 1.7% | 90.7% | |
_POP_TOP | 1,030,000 | 0.8% | 91.5% | |
_GUARD_DORV_NO_DICT | 1,021,440 | 0.8% | 92.4% | |
_STORE_ATTR_INSTANCE_VALUE | 1,021,440 | 0.8% | 93.2% | |
_SET_IP | 524,880 | 0.4% | 93.6% | |
_LOAD_FAST_2 | 519,280 | 0.4% | 94.1% | |
_RESUME_CHECK | 515,440 | 0.4% | 94.5% | |
_CHECK_FUNCTION_EXACT_ARGS | 515,440 | 0.4% | 94.9% | |
_CHECK_STACK_SPACE_OPERAND | 515,440 | 0.4% | 95.3% | |
_LOAD_FAST_1 | 515,440 | 0.4% | 95.7% | |
_PUSH_FRAME | 515,440 | 0.4% | 96.2% | |
_SAVE_RETURN_OFFSET | 515,440 | 0.4% | 96.6% | |
_CHECK_MANAGED_OBJECT_HAS_VALUES | 510,720 | 0.4% | 97.0% | |
_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT | 510,720 | 0.4% | 97.4% | |
_GUARD_KEYS_VERSION | 510,720 | 0.4% | 97.8% | |
_INIT_CALL_PY_EXACT_ARGS_1 | 510,720 | 0.4% | 98.3% | |
_LOAD_ATTR_INSTANCE_VALUE_0 | 510,720 | 0.4% | 98.7% | |
_LOAD_ATTR_METHOD_WITH_VALUES | 510,720 | 0.4% | 99.1% | |
_LOAD_CONST_INLINE_BORROW | 510,720 | 0.4% | 99.5% | |
_POP_FRAME | 510,720 | 0.4% | 99.9% | |
_CHECK_PERIODIC | 9,440 | 0.0% | 99.9% | |
_CHECK_VALIDITY | 9,440 | 0.0% | 100.0% | |
_GET_ITER | 4,720 | 0.0% | 100.0% | |
_PUSH_NULL | 4,720 | 0.0% | 100.0% | |
_BUILD_LIST | 4,720 | 0.0% | 100.0% | |
_CALL_BUILTIN_CLASS | 4,720 | 0.0% | 100.0% | |
_CALL_BUILTIN_FAST_WITH_KEYWORDS | 4,720 | 0.0% | 100.0% | |
_CHECK_VALIDITY_AND_SET_IP | 4,720 | 0.0% | 100.0% | |
_INIT_CALL_PY_EXACT_ARGS_2 | 4,720 | 0.0% | 100.0% | |
_LOAD_CONST_INLINE | 4,720 | 0.0% | 100.0% | |
_LOAD_CONST_INLINE_BORROW_WITH_NULL | 4,720 | 0.0% | 100.0% | |
_STORE_FAST_2 | 4,720 | 0.0% | 100.0% | |
_STORE_FAST_4 | 4,720 | 0.0% | 100.0% |
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 |
---|---|---|---|
_ITER_CHECK_RANGE _GUARD_NOT_EXHAUSTED_RANGE | 10,760,880 | 8.8% | 8.8% |
_START_EXECUTOR _TIER2_RESUME_CHECK | 10,756,160 | 8.8% | 17.6% |
_TIER2_RESUME_CHECK _ITER_CHECK_RANGE | 10,756,160 | 8.8% | 26.5% |
_GUARD_NOT_EXHAUSTED_RANGE _ITER_NEXT_RANGE | 10,243,680 | 8.4% | 34.9% |
_ITER_NEXT_RANGE _STORE_FAST_3 | 10,238,960 | 8.4% | 43.2% |
_LOAD_CONST_INLINE_WITH_NULL _EXIT_TRACE | 10,238,960 | 8.4% | 51.6% |
_CHECK_FUNCTION _LOAD_CONST_INLINE_WITH_NULL | 10,234,240 | 8.4% | 60.0% |
_STORE_FAST_3 _CHECK_FUNCTION | 10,234,240 | 8.4% | 68.4% |
_GUARD_DORV_NO_DICT _STORE_ATTR_INSTANCE_VALUE | 1,021,440 | 0.8% | 69.3% |
_GUARD_TYPE_VERSION _GUARD_DORV_NO_DICT | 1,021,440 | 0.8% | 70.1% |
_LOAD_FAST_0 _GUARD_TYPE_VERSION | 1,021,440 | 0.8% | 70.9% |
_GUARD_NOT_EXHAUSTED_RANGE _EXIT_TRACE | 517,200 | 0.4% | 71.3% |
_SET_IP _CHECK_FUNCTION_EXACT_ARGS | 515,440 | 0.4% | 71.8% |
_CHECK_FUNCTION_EXACT_ARGS _CHECK_STACK_SPACE_OPERAND | 515,440 | 0.4% | 72.2% |
_LOAD_FAST_0 _SET_IP | 515,440 | 0.4% | 72.6% |
_PUSH_FRAME _RESUME_CHECK | 515,440 | 0.4% | 73.0% |
_SAVE_RETURN_OFFSET _PUSH_FRAME | 515,440 | 0.4% | 73.5% |
_POP_TOP _LOAD_FAST_2 | 514,560 | 0.4% | 73.9% |
_START_EXECUTOR _POP_TOP | 514,560 | 0.4% | 74.3% |
_POP_TOP _EXIT_TRACE | 510,720 | 0.4% | 74.7% |
_RESUME_CHECK _LOAD_FAST_1 | 510,720 | 0.4% | 75.1% |
_CHECK_MANAGED_OBJECT_HAS_VALUES _LOAD_ATTR_INSTANCE_VALUE_0 | 510,720 | 0.4% | 75.6% |
_CHECK_STACK_SPACE_OPERAND _INIT_CALL_PY_EXACT_ARGS_1 | 510,720 | 0.4% | 76.0% |
_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT _GUARD_KEYS_VERSION | 510,720 | 0.4% | 76.4% |
_GUARD_KEYS_VERSION _LOAD_ATTR_METHOD_WITH_VALUES | 510,720 | 0.4% | 76.8% |
_GUARD_TYPE_VERSION _CHECK_MANAGED_OBJECT_HAS_VALUES | 510,720 | 0.4% | 77.2% |
_GUARD_TYPE_VERSION _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT | 510,720 | 0.4% | 77.7% |
_INIT_CALL_PY_EXACT_ARGS_1 _SAVE_RETURN_OFFSET | 510,720 | 0.4% | 78.1% |
_LOAD_ATTR_INSTANCE_VALUE_0 _GUARD_TYPE_VERSION | 510,720 | 0.4% | 78.5% |
_LOAD_ATTR_METHOD_WITH_VALUES _LOAD_FAST_0 | 510,720 | 0.4% | 78.9% |
_LOAD_CONST_INLINE_BORROW _POP_FRAME | 510,720 | 0.4% | 79.3% |
_LOAD_FAST_0 _LOAD_FAST_0 | 510,720 | 0.4% | 79.7% |
_LOAD_FAST_1 _LOAD_FAST_0 | 510,720 | 0.4% | 80.2% |
_LOAD_FAST_2 _GUARD_TYPE_VERSION | 510,720 | 0.4% | 80.6% |
_POP_FRAME _POP_TOP | 510,720 | 0.4% | 81.0% |
_STORE_ATTR_INSTANCE_VALUE _LOAD_CONST_INLINE_BORROW | 510,720 | 0.4% | 81.4% |
_STORE_ATTR_INSTANCE_VALUE _LOAD_FAST_0 | 510,720 | 0.4% | 81.8% |
_GET_ITER _CHECK_VALIDITY | 4,720 | 0.0% | 81.8% |
_POP_TOP _LOAD_CONST_INLINE_WITH_NULL | 4,720 | 0.0% | 81.8% |
_PUSH_NULL _SET_IP | 4,720 | 0.0% | 81.9% |
_BUILD_LIST _STORE_FAST_2 | 4,720 | 0.0% | 81.9% |
_RESUME_CHECK _BUILD_LIST | 4,720 | 0.0% | 81.9% |
_SET_IP _CALL_BUILTIN_CLASS | 4,720 | 0.0% | 81.9% |
_SET_IP _CALL_BUILTIN_FAST_WITH_KEYWORDS | 4,720 | 0.0% | 81.9% |
_CALL_BUILTIN_CLASS _CHECK_PERIODIC | 4,720 | 0.0% | 81.9% |
_CALL_BUILTIN_FAST_WITH_KEYWORDS _CHECK_PERIODIC | 4,720 | 0.0% | 81.9% |
_CHECK_FUNCTION _LOAD_CONST_INLINE | 4,720 | 0.0% | 81.9% |
_CHECK_PERIODIC _CHECK_VALIDITY | 4,720 | 0.0% | 81.9% |
_CHECK_PERIODIC _CHECK_VALIDITY_AND_SET_IP | 4,720 | 0.0% | 81.9% |
_CHECK_STACK_SPACE_OPERAND _INIT_CALL_PY_EXACT_ARGS_2 | 4,720 | 0.0% | 81.9% |
_CHECK_VALIDITY _POP_TOP | 4,720 | 0.0% | 81.9% |
_CHECK_VALIDITY _ITER_CHECK_RANGE | 4,720 | 0.0% | 81.9% |
_CHECK_VALIDITY_AND_SET_IP _GET_ITER | 4,720 | 0.0% | 81.9% |
_INIT_CALL_PY_EXACT_ARGS_2 _SAVE_RETURN_OFFSET | 4,720 | 0.0% | 81.9% |
_ITER_NEXT_RANGE _STORE_FAST_4 | 4,720 | 0.0% | 81.9% |
_LOAD_CONST_INLINE _PUSH_NULL | 4,720 | 0.0% | 81.9% |
_LOAD_CONST_INLINE_BORROW_WITH_NULL _LOAD_FAST_0 | 4,720 | 0.0% | 81.9% |
_LOAD_CONST_INLINE_WITH_NULL _LOAD_FAST_1 | 4,720 | 0.0% | 81.9% |
_LOAD_FAST_1 _LOAD_FAST_2 | 4,720 | 0.0% | 81.9% |
_LOAD_FAST_2 _SET_IP | 4,720 | 0.0% | 81.9% |
_STORE_FAST_2 _LOAD_CONST_INLINE_BORROW_WITH_NULL | 4,720 | 0.0% | 81.9% |
_STORE_FAST_3 _LOAD_CONST_INLINE_WITH_NULL | 4,720 | 0.0% | 81.9% |
_STORE_FAST_4 _CHECK_FUNCTION | 4,720 | 0.0% | 81.9% |
_LOAD_FAST_2 _EXIT_TRACE | 3,840 | 0.0% | 81.9% |
unsupported opcodes
Opcode | Count |
---|---|
CALL | 2,720 |
CALL_ALLOC_AND_ENTER_INIT | 60 |
Optimization stopped after encountering this opcode
Counts of rare/unlikely events
Event | Count |
---|---|
set class
ⓘSetting an object's class, |
0 |
set bases
ⓘSetting the bases of a class, |
0 |
set eval frame func
ⓘSetting the PEP 523 frame eval function |
0 |
builtin dict
ⓘModifying the builtins, |
0 |
func modification
ⓘModifying a function, e.g. |
0 |
watched dict modification
ⓘA watched dict has been modified |
0 |
watched globals modification
ⓘA watched |
0 |
Meta statistics
Count | |
---|---|
Number of data files | 20 |
Stats gathered on: 2024-06-16