- benchmark: generators
- 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 |
---|---|---|---|---|
RESUME_CHECK | 558,068,400 | 17.7% | 17.7% | 0.0% |
YIELD_VALUE | 502,065,040 | 15.9% | 33.6% | |
SEND_GEN | 502,064,600 | 15.9% | 49.5% | |
JUMP_BACKWARD_NO_INTERRUPT | 470,064,240 | 14.9% | 64.5% | |
LOAD_FAST | 184,009,440 | 5.8% | 70.3% | |
LOAD_ATTR_INSTANCE_VALUE | 128,002,700 | 4.1% | 74.4% | |
POP_TOP | 96,002,400 | 3.0% | 77.4% | |
LOAD_CONST | 80,005,600 | 2.5% | 79.9% | |
POP_JUMP_IF_FALSE | 80,003,360 | 2.5% | 82.5% | |
STORE_FAST | 56,003,120 | 1.8% | 84.2% | |
RETURN_CONST | 48,002,560 | 1.5% | 85.8% | |
LOAD_FAST_LOAD_FAST | 40,004,000 | 1.3% | 87.0% | |
TO_BOOL_NONE | 32,277,120 | 1.0% | 88.1% | 45.2% |
TO_BOOL_ALWAYS_TRUE | 32,275,340 | 1.0% | 89.1% | 45.2% |
INTERPRETER_EXIT | 32,001,720 | 1.0% | 90.1% | |
RETURN_GENERATOR | 32,000,800 | 1.0% | 91.1% | |
END_SEND | 32,000,400 | 1.0% | 92.1% | |
GET_YIELD_FROM_ITER | 32,000,400 | 1.0% | 93.1% | |
ENTER_EXECUTOR | 31,999,660 | 1.0% | 94.2% | |
LOAD_GLOBAL_MODULE | 24,002,640 | 0.8% | 94.9% | |
STORE_ATTR_INSTANCE_VALUE | 24,002,340 | 0.8% | 95.7% | |
LOAD_GLOBAL_BUILTIN | 16,002,100 | 0.5% | 96.2% | |
RETURN_VALUE | 16,001,740 | 0.5% | 96.7% | |
CALL_LEN | 16,001,740 | 0.5% | 97.2% | |
COMPARE_OP_INT | 16,001,740 | 0.5% | 97.7% | |
CALL_PY_EXACT_ARGS | 16,001,680 | 0.5% | 98.2% | |
BINARY_SLICE | 16,001,600 | 0.5% | 98.7% | |
BINARY_OP | 8,003,020 | 0.3% | 99.0% | |
BINARY_SUBSCR | 8,002,940 | 0.3% | 99.2% | |
EXIT_INIT_CHECK | 8,000,780 | 0.3% | 99.5% | |
BINARY_OP_ADD_INT | 8,000,780 | 0.3% | 99.7% | |
CALL_ALLOC_AND_ENTER_INIT | 8,000,780 | 0.3% | 100.0% | |
JUMP_BACKWARD | 660 | 0.0% | 100.0% | |
FOR_ITER_GEN | 620 | 0.0% | 100.0% | |
CALL | 600 | 0.0% | 100.0% | |
LOAD_GLOBAL | 600 | 0.0% | 100.0% | |
GET_ITER | 400 | 0.0% | 100.0% | |
PUSH_NULL | 400 | 0.0% | 100.0% | |
FOR_ITER_RANGE | 380 | 0.0% | 100.0% | |
CALL_BUILTIN_CLASS | 360 | 0.0% | 100.0% | |
END_FOR | 320 | 0.0% | 100.0% | |
LOAD_ATTR | 320 | 0.0% | 100.0% | |
LOAD_DEREF | 240 | 0.0% | 100.0% | |
CALL_NON_PY_GENERAL | 180 | 0.0% | 100.0% | |
LOAD_ATTR_MODULE | 180 | 0.0% | 100.0% | |
RESUME | 160 | 0.0% | 100.0% | 2,462.5% |
CALL_FUNCTION_EX | 160 | 0.0% | 100.0% | |
COMPARE_OP | 140 | 0.0% | 100.0% | |
STORE_ATTR | 120 | 0.0% | 100.0% | |
NOP | 80 | 0.0% | 100.0% | |
TO_BOOL | 80 | 0.0% | 100.0% | |
BUILD_LIST | 80 | 0.0% | 100.0% | |
CALL_INTRINSIC_1 | 80 | 0.0% | 100.0% | |
COPY_FREE_VARS | 80 | 0.0% | 100.0% | |
FOR_ITER | 80 | 0.0% | 100.0% | |
LIST_EXTEND | 80 | 0.0% | 100.0% | |
POP_JUMP_IF_TRUE | 80 | 0.0% | 100.0% | |
SEND | 80 | 0.0% | 100.0% | |
BINARY_OP_SUBTRACT_FLOAT | 60 | 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 |
---|---|---|---|
YIELD_VALUE YIELD_VALUE | 470,064,240 | 14.9% | 14.9% |
JUMP_BACKWARD_NO_INTERRUPT SEND_GEN | 470,064,220 | 14.9% | 29.8% |
RESUME_CHECK JUMP_BACKWARD_NO_INTERRUPT | 470,064,200 | 14.9% | 44.7% |
SEND_GEN RESUME_CHECK | 470,064,200 | 14.9% | 59.6% |
LOAD_FAST LOAD_ATTR_INSTANCE_VALUE | 128,002,600 | 4.1% | 63.7% |
POP_TOP LOAD_FAST | 52,972,480 | 1.7% | 65.4% |
POP_JUMP_IF_FALSE LOAD_FAST | 51,030,320 | 1.6% | 67.0% |
LOAD_FAST LOAD_CONST | 32,003,360 | 1.0% | 68.0% |
TO_BOOL_NONE POP_JUMP_IF_FALSE | 32,001,680 | 1.0% | 69.0% |
LOAD_ATTR_INSTANCE_VALUE TO_BOOL_NONE | 32,001,640 | 1.0% | 70.0% |
CACHE RETURN_GENERATOR | 32,000,800 | 1.0% | 71.1% |
RETURN_GENERATOR INTERPRETER_EXIT | 32,000,800 | 1.0% | 72.1% |
POP_TOP RESUME_CHECK | 32,000,780 | 1.0% | 73.1% |
LOAD_ATTR_INSTANCE_VALUE YIELD_VALUE | 32,000,780 | 1.0% | 74.1% |
RESUME_CHECK POP_TOP | 32,000,780 | 1.0% | 75.1% |
RESUME_CHECK LOAD_FAST | 32,000,780 | 1.0% | 76.1% |
END_SEND POP_TOP | 32,000,400 | 1.0% | 77.1% |
GET_YIELD_FROM_ITER LOAD_CONST | 32,000,400 | 1.0% | 78.2% |
RETURN_CONST END_SEND | 32,000,400 | 1.0% | 79.2% |
LOAD_ATTR_INSTANCE_VALUE GET_YIELD_FROM_ITER | 32,000,360 | 1.0% | 80.2% |
SEND_GEN POP_TOP | 32,000,360 | 1.0% | 81.2% |
LOAD_CONST SEND_GEN | 32,000,340 | 1.0% | 82.2% |
YIELD_VALUE STORE_FAST | 31,999,980 | 1.0% | 83.2% |
LOAD_ATTR_INSTANCE_VALUE TO_BOOL_ALWAYS_TRUE | 31,999,880 | 1.0% | 84.2% |
TO_BOOL_ALWAYS_TRUE POP_JUMP_IF_FALSE | 31,999,880 | 1.0% | 85.3% |
ENTER_EXECUTOR RESUME_CHECK | 31,999,660 | 1.0% | 86.3% |
STORE_FAST ENTER_EXECUTOR | 31,999,660 | 1.0% | 87.3% |
POP_JUMP_IF_FALSE RETURN_CONST | 28,973,040 | 0.9% | 88.2% |
LOAD_FAST_LOAD_FAST STORE_ATTR_INSTANCE_VALUE | 24,002,280 | 0.8% | 89.0% |
STORE_FAST LOAD_FAST | 16,002,160 | 0.5% | 89.5% |
LOAD_GLOBAL_BUILTIN LOAD_FAST | 16,001,800 | 0.5% | 90.0% |
RESUME_CHECK LOAD_GLOBAL_BUILTIN | 16,001,760 | 0.5% | 90.5% |
CALL_LEN STORE_FAST | 16,001,740 | 0.5% | 91.0% |
COMPARE_OP_INT POP_JUMP_IF_FALSE | 16,001,740 | 0.5% | 91.5% |
LOAD_CONST COMPARE_OP_INT | 16,001,720 | 0.5% | 92.0% |
LOAD_FAST CALL_LEN | 16,001,720 | 0.5% | 92.5% |
CALL_PY_EXACT_ARGS RESUME_CHECK | 16,001,680 | 0.5% | 93.0% |
STORE_ATTR_INSTANCE_VALUE LOAD_FAST_LOAD_FAST | 16,001,560 | 0.5% | 93.5% |
BINARY_SLICE CALL_PY_EXACT_ARGS | 16,001,520 | 0.5% | 94.0% |
POP_TOP RETURN_CONST | 11,028,720 | 0.3% | 94.4% |
RETURN_VALUE RETURN_VALUE | 8,000,860 | 0.3% | 94.7% |
LOAD_CONST BINARY_OP | 8,000,840 | 0.3% | 94.9% |
STORE_FAST LOAD_GLOBAL_MODULE | 8,000,840 | 0.3% | 95.2% |
BINARY_OP STORE_FAST | 8,000,800 | 0.3% | 95.4% |
LOAD_CONST BINARY_SLICE | 8,000,800 | 0.3% | 95.7% |
LOAD_CONST LOAD_FAST | 8,000,800 | 0.3% | 95.9% |
LOAD_FAST BINARY_SLICE | 8,000,800 | 0.3% | 96.2% |
LOAD_FAST_LOAD_FAST BINARY_SUBSCR | 8,000,800 | 0.3% | 96.4% |
LOAD_FAST_LOAD_FAST LOAD_CONST | 8,000,800 | 0.3% | 96.7% |
EXIT_INIT_CHECK RETURN_VALUE | 8,000,780 | 0.3% | 96.9% |
RETURN_CONST EXIT_INIT_CHECK | 8,000,780 | 0.3% | 97.2% |
BINARY_OP_ADD_INT LOAD_CONST | 8,000,780 | 0.3% | 97.4% |
CALL_ALLOC_AND_ENTER_INIT RESUME_CHECK | 8,000,780 | 0.3% | 97.7% |
LOAD_GLOBAL_MODULE LOAD_FAST | 8,000,780 | 0.3% | 98.0% |
LOAD_GLOBAL_MODULE LOAD_FAST_LOAD_FAST | 8,000,780 | 0.3% | 98.2% |
RESUME_CHECK LOAD_FAST_LOAD_FAST | 8,000,780 | 0.3% | 98.5% |
STORE_ATTR_INSTANCE_VALUE RETURN_CONST | 8,000,780 | 0.3% | 98.7% |
BINARY_SUBSCR LOAD_GLOBAL_MODULE | 8,000,760 | 0.3% | 99.0% |
LOAD_CONST BINARY_OP_ADD_INT | 8,000,760 | 0.3% | 99.2% |
LOAD_GLOBAL_MODULE LOAD_GLOBAL_MODULE | 8,000,760 | 0.3% | 99.5% |
RETURN_CONST CALL_ALLOC_AND_ENTER_INIT | 5,243,400 | 0.2% | 99.6% |
RETURN_VALUE LOAD_FAST_LOAD_FAST | 5,243,280 | 0.2% | 99.8% |
RETURN_CONST LOAD_FAST_LOAD_FAST | 2,757,520 | 0.1% | 99.9% |
RETURN_VALUE CALL_ALLOC_AND_ENTER_INIT | 2,757,360 | 0.1% | 100.0% |
TO_BOOL_ALWAYS_TRUE TO_BOOL_NONE | 275,460 | 0.0% | 100.0% |
TO_BOOL_NONE TO_BOOL_ALWAYS_TRUE | 275,440 | 0.0% | 100.0% |
BINARY_SUBSCR BINARY_SUBSCR | 2,140 | 0.0% | 100.0% |
BINARY_OP BINARY_OP | 2,140 | 0.0% | 100.0% |
YIELD_VALUE INTERPRETER_EXIT | 820 | 0.0% | 100.0% |
CACHE RESUME_CHECK | 780 | 0.0% | 100.0% |
LOAD_FAST GET_ITER | 400 | 0.0% | 100.0% |
STORE_FAST JUMP_BACKWARD | 340 | 0.0% | 100.0% |
END_FOR POP_TOP | 320 | 0.0% | 100.0% |
POP_TOP JUMP_BACKWARD | 320 | 0.0% | 100.0% |
RETURN_CONST END_FOR | 320 | 0.0% | 100.0% |
FOR_ITER_GEN RESUME_CHECK | 320 | 0.0% | 100.0% |
GET_ITER FOR_ITER_GEN | 300 | 0.0% | 100.0% |
JUMP_BACKWARD FOR_ITER_GEN | 300 | 0.0% | 100.0% |
JUMP_BACKWARD FOR_ITER_RANGE | 300 | 0.0% | 100.0% |
FOR_ITER_GEN POP_TOP | 300 | 0.0% | 100.0% |
FOR_ITER_RANGE STORE_FAST | 300 | 0.0% | 100.0% |
LOAD_FAST LOAD_ATTR | 200 | 0.0% | 100.0% |
LOAD_ATTR_MODULE PUSH_NULL | 180 | 0.0% | 100.0% |
LOAD_GLOBAL_BUILTIN LOAD_CONST | 180 | 0.0% | 100.0% |
PUSH_NULL LOAD_FAST | 160 | 0.0% | 100.0% |
LOAD_DEREF PUSH_NULL | 160 | 0.0% | 100.0% |
LOAD_GLOBAL LOAD_GLOBAL_MODULE | 160 | 0.0% | 100.0% |
LOAD_GLOBAL LOAD_GLOBAL_BUILTIN | 140 | 0.0% | 100.0% |
PUSH_NULL CALL | 120 | 0.0% | 100.0% |
PUSH_NULL CALL_NON_PY_GENERAL | 120 | 0.0% | 100.0% |
CALL CALL_BUILTIN_CLASS | 120 | 0.0% | 100.0% |
LOAD_CONST CALL | 120 | 0.0% | 100.0% |
LOAD_CONST CALL_BUILTIN_CLASS | 120 | 0.0% | 100.0% |
LOAD_FAST_LOAD_FAST STORE_ATTR | 120 | 0.0% | 100.0% |
STORE_FAST LOAD_GLOBAL | 120 | 0.0% | 100.0% |
LOAD_GLOBAL_MODULE LOAD_ATTR_MODULE | 120 | 0.0% | 100.0% |
CACHE POP_TOP | 100 | 0.0% | 100.0% |
LOAD_ATTR LOAD_ATTR_INSTANCE_VALUE | 100 | 0.0% | 100.0% |
LOAD_GLOBAL LOAD_GLOBAL | 100 | 0.0% | 100.0% |
RETURN_CONST INTERPRETER_EXIT | 100 | 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 BINARY_SLICE
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 8,000,800 | 50.0% |
LOAD_FAST | 8,000,800 | 50.0% |
Successors | Count | Percentage |
---|---|---|
CALL_PY_EXACT_ARGS | 16,001,520 | 100.0% |
CALL | 80 | 0.0% |
Successors and predecessors for CACHE
Successors | Count | Percentage |
---|---|---|
RETURN_GENERATOR | 32,000,800 | 100.0% |
RESUME_CHECK | 780 | 0.0% |
POP_TOP | 100 | 0.0% |
RESUME | 40 | 0.0% |
Successors and predecessors for BINARY_SUBSCR
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 8,000,800 | 100.0% |
BINARY_SUBSCR | 2,140 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 8,000,760 | 100.0% |
BINARY_SUBSCR | 2,140 | 0.0% |
LOAD_GLOBAL | 40 | 0.0% |
Successors and predecessors for END_FOR
Predecessors | Count | Percentage |
---|---|---|
RETURN_CONST | 320 | 100.0% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 320 | 100.0% |
Successors and predecessors for END_SEND
Predecessors | Count | Percentage |
---|---|---|
RETURN_CONST | 32,000,400 | 100.0% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 32,000,400 | 100.0% |
Successors and predecessors for EXIT_INIT_CHECK
Predecessors | Count | Percentage |
---|---|---|
RETURN_CONST | 8,000,780 | 100.0% |
Successors | Count | Percentage |
---|---|---|
RETURN_VALUE | 8,000,780 | 100.0% |
Successors and predecessors for GET_ITER
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 400 | 100.0% |
Successors | Count | Percentage |
---|---|---|
FOR_ITER_GEN | 300 | 75.0% |
FOR_ITER_RANGE | 60 | 15.0% |
FOR_ITER | 40 | 10.0% |
Successors and predecessors for GET_YIELD_FROM_ITER
Predecessors | Count | Percentage |
---|---|---|
LOAD_ATTR_INSTANCE_VALUE | 32,000,360 | 100.0% |
LOAD_ATTR | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST | 32,000,400 | 100.0% |
Successors and predecessors for INTERPRETER_EXIT
Predecessors | Count | Percentage |
---|---|---|
RETURN_GENERATOR | 32,000,800 | 100.0% |
YIELD_VALUE | 820 | 0.0% |
RETURN_CONST | 100 | 0.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 |
---|---|---|
RESUME_CHECK | 32,000,780 | 33.3% |
END_SEND | 32,000,400 | 33.3% |
SEND_GEN | 32,000,360 | 33.3% |
END_FOR | 320 | 0.0% |
FOR_ITER_GEN | 300 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 52,972,480 | 55.2% |
RESUME_CHECK | 32,000,780 | 33.3% |
RETURN_CONST | 11,028,720 | 11.5% |
JUMP_BACKWARD | 320 | 0.0% |
NOP | 80 | 0.0% |
Successors and predecessors for PUSH_NULL
Predecessors | Count | Percentage |
---|---|---|
LOAD_ATTR_MODULE | 180 | 45.0% |
LOAD_DEREF | 160 | 40.0% |
LOAD_ATTR | 60 | 15.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 160 | 40.0% |
CALL | 120 | 30.0% |
CALL_NON_PY_GENERAL | 120 | 30.0% |
Successors and predecessors for RETURN_GENERATOR
Predecessors | Count | Percentage |
---|---|---|
CACHE | 32,000,800 | 100.0% |
Successors | Count | Percentage |
---|---|---|
INTERPRETER_EXIT | 32,000,800 | 100.0% |
Successors and predecessors for RETURN_VALUE
Predecessors | Count | Percentage |
---|---|---|
RETURN_VALUE | 8,000,860 | 50.0% |
EXIT_INIT_CHECK | 8,000,780 | 50.0% |
BINARY_OP_SUBTRACT_FLOAT | 60 | 0.0% |
BINARY_OP | 20 | 0.0% |
CALL | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
RETURN_VALUE | 8,000,860 | 50.0% |
LOAD_FAST_LOAD_FAST | 5,243,280 | 32.8% |
CALL_ALLOC_AND_ENTER_INIT | 2,757,360 | 17.2% |
STORE_FAST | 80 | 0.0% |
CALL | 40 | 0.0% |
Successors and predecessors for TO_BOOL
Predecessors | Count | Percentage |
---|---|---|
LOAD_ATTR | 40 | 50.0% |
LOAD_ATTR_INSTANCE_VALUE | 40 | 50.0% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 40 | 50.0% |
TO_BOOL_ALWAYS_TRUE | 20 | 25.0% |
TO_BOOL_NONE | 20 | 25.0% |
Successors and predecessors for BINARY_OP
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 8,000,840 | 100.0% |
BINARY_OP | 2,140 | 0.0% |
LOAD_FAST | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 8,000,800 | 100.0% |
BINARY_OP | 2,140 | 0.0% |
RETURN_VALUE | 20 | 0.0% |
LOAD_CONST | 20 | 0.0% |
BINARY_OP_ADD_INT | 20 | 0.0% |
Successors and predecessors for BUILD_LIST
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 80 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_DEREF | 80 | 100.0% |
Successors and predecessors for CALL
Predecessors | Count | Percentage |
---|---|---|
PUSH_NULL | 120 | 20.0% |
LOAD_CONST | 120 | 20.0% |
BINARY_SLICE | 80 | 13.3% |
LOAD_FAST | 80 | 13.3% |
CALL | 60 | 10.0% |
Successors | Count | Percentage |
---|---|---|
CALL_BUILTIN_CLASS | 120 | 20.0% |
CALL_PY_EXACT_ARGS | 80 | 13.3% |
CALL | 60 | 10.0% |
STORE_FAST | 60 | 10.0% |
CALL_NON_PY_GENERAL | 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 |
---|---|---|
CALL_BUILTIN_CLASS | 60 | 42.9% |
LOAD_CONST | 40 | 28.6% |
CALL | 20 | 14.3% |
COMPARE_OP | 20 | 14.3% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_TRUE | 80 | 57.1% |
COMPARE_OP | 20 | 14.3% |
POP_JUMP_IF_FALSE | 20 | 14.3% |
COMPARE_OP_INT | 20 | 14.3% |
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 ENTER_EXECUTOR
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 31,999,660 | 100.0% |
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 31,999,660 | 100.0% |
Successors and predecessors for FOR_ITER
Predecessors | Count | Percentage |
---|---|---|
GET_ITER | 40 | 50.0% |
JUMP_BACKWARD | 40 | 50.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 40 | 50.0% |
FOR_ITER_GEN | 20 | 25.0% |
FOR_ITER_RANGE | 20 | 25.0% |
Successors and predecessors for JUMP_BACKWARD
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 340 | 51.5% |
POP_TOP | 320 | 48.5% |
Successors | Count | Percentage |
---|---|---|
FOR_ITER_GEN | 300 | 45.5% |
FOR_ITER_RANGE | 300 | 45.5% |
FOR_ITER | 40 | 6.1% |
RESUME_CHECK | 20 | 3.0% |
Successors and predecessors for JUMP_BACKWARD_NO_INTERRUPT
Predecessors | Count | Percentage |
---|---|---|
RESUME_CHECK | 470,064,200 | 100.0% |
RESUME | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
SEND_GEN | 470,064,220 | 100.0% |
SEND | 20 | 0.0% |
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 | 200 | 62.5% |
LOAD_GLOBAL | 60 | 18.8% |
LOAD_GLOBAL_MODULE | 60 | 18.8% |
Successors | Count | Percentage |
---|---|---|
LOAD_ATTR_INSTANCE_VALUE | 100 | 31.2% |
PUSH_NULL | 60 | 18.8% |
LOAD_ATTR_MODULE | 60 | 18.8% |
GET_YIELD_FROM_ITER | 40 | 12.5% |
TO_BOOL | 40 | 12.5% |
Successors and predecessors for LOAD_CONST
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 32,003,360 | 40.0% |
GET_YIELD_FROM_ITER | 32,000,400 | 40.0% |
LOAD_FAST_LOAD_FAST | 8,000,800 | 10.0% |
BINARY_OP_ADD_INT | 8,000,780 | 10.0% |
LOAD_GLOBAL_BUILTIN | 180 | 0.0% |
Successors | Count | Percentage |
---|---|---|
SEND_GEN | 32,000,340 | 40.0% |
COMPARE_OP_INT | 16,001,720 | 20.0% |
BINARY_OP | 8,000,840 | 10.0% |
BINARY_SLICE | 8,000,800 | 10.0% |
LOAD_FAST | 8,000,800 | 10.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 |
---|---|---|
POP_TOP | 52,972,480 | 28.8% |
POP_JUMP_IF_FALSE | 51,030,320 | 27.7% |
RESUME_CHECK | 32,000,780 | 17.4% |
STORE_FAST | 16,002,160 | 8.7% |
LOAD_GLOBAL_BUILTIN | 16,001,800 | 8.7% |
Successors | Count | Percentage |
---|---|---|
LOAD_ATTR_INSTANCE_VALUE | 128,002,600 | 69.6% |
LOAD_CONST | 32,003,360 | 17.4% |
CALL_LEN | 16,001,720 | 8.7% |
BINARY_SLICE | 8,000,800 | 4.3% |
GET_ITER | 400 | 0.0% |
Successors and predecessors for LOAD_FAST_LOAD_FAST
Predecessors | Count | Percentage |
---|---|---|
STORE_ATTR_INSTANCE_VALUE | 16,001,560 | 40.0% |
LOAD_GLOBAL_MODULE | 8,000,780 | 20.0% |
RESUME_CHECK | 8,000,780 | 20.0% |
RETURN_VALUE | 5,243,280 | 13.1% |
RETURN_CONST | 2,757,520 | 6.9% |
Successors | Count | Percentage |
---|---|---|
STORE_ATTR_INSTANCE_VALUE | 24,002,280 | 60.0% |
BINARY_SUBSCR | 8,000,800 | 20.0% |
LOAD_CONST | 8,000,800 | 20.0% |
STORE_ATTR | 120 | 0.0% |
Successors and predecessors for LOAD_GLOBAL
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 120 | 20.0% |
LOAD_GLOBAL | 100 | 16.7% |
LOAD_GLOBAL_MODULE | 60 | 10.0% |
BINARY_SUBSCR | 40 | 6.7% |
RETURN_VALUE | 40 | 6.7% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 160 | 26.7% |
LOAD_GLOBAL_BUILTIN | 140 | 23.3% |
LOAD_GLOBAL | 100 | 16.7% |
LOAD_ATTR | 60 | 10.0% |
LOAD_CONST | 60 | 10.0% |
Successors and predecessors for POP_JUMP_IF_FALSE
Predecessors | Count | Percentage |
---|---|---|
TO_BOOL_NONE | 32,001,680 | 40.0% |
TO_BOOL_ALWAYS_TRUE | 31,999,880 | 40.0% |
COMPARE_OP_INT | 16,001,740 | 20.0% |
TO_BOOL | 40 | 0.0% |
COMPARE_OP | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 51,030,320 | 63.8% |
RETURN_CONST | 28,973,040 | 36.2% |
Successors and predecessors for POP_JUMP_IF_TRUE
Predecessors | Count | Percentage |
---|---|---|
COMPARE_OP | 80 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL | 40 | 50.0% |
LOAD_GLOBAL_BUILTIN | 40 | 50.0% |
Successors and predecessors for RETURN_CONST
Predecessors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 28,973,040 | 60.4% |
POP_TOP | 11,028,720 | 23.0% |
STORE_ATTR_INSTANCE_VALUE | 8,000,780 | 16.7% |
STORE_ATTR | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
END_SEND | 32,000,400 | 66.7% |
EXIT_INIT_CHECK | 8,000,780 | 16.7% |
CALL_ALLOC_AND_ENTER_INIT | 5,243,400 | 10.9% |
LOAD_FAST_LOAD_FAST | 2,757,520 | 5.7% |
END_FOR | 320 | 0.0% |
Successors and predecessors for SEND
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 60 | 75.0% |
JUMP_BACKWARD_NO_INTERRUPT | 20 | 25.0% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 40 | 50.0% |
SEND_GEN | 40 | 50.0% |
Successors and predecessors for STORE_ATTR
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 120 | 100.0% |
Successors | Count | Percentage |
---|---|---|
STORE_ATTR_INSTANCE_VALUE | 60 | 50.0% |
LOAD_FAST_LOAD_FAST | 40 | 33.3% |
RETURN_CONST | 20 | 16.7% |
Successors and predecessors for STORE_FAST
Predecessors | Count | Percentage |
---|---|---|
YIELD_VALUE | 31,999,980 | 57.1% |
CALL_LEN | 16,001,740 | 28.6% |
BINARY_OP | 8,000,800 | 14.3% |
FOR_ITER_RANGE | 300 | 0.0% |
RETURN_VALUE | 80 | 0.0% |
Successors | Count | Percentage |
---|---|---|
ENTER_EXECUTOR | 31,999,660 | 57.1% |
LOAD_FAST | 16,002,160 | 28.6% |
LOAD_GLOBAL_MODULE | 8,000,840 | 14.3% |
JUMP_BACKWARD | 340 | 0.0% |
LOAD_GLOBAL | 120 | 0.0% |
Successors and predecessors for YIELD_VALUE
Predecessors | Count | Percentage |
---|---|---|
YIELD_VALUE | 470,064,240 | 93.6% |
LOAD_ATTR_INSTANCE_VALUE | 32,000,780 | 6.4% |
LOAD_ATTR | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
YIELD_VALUE | 470,064,240 | 93.6% |
STORE_FAST | 31,999,980 | 6.4% |
INTERPRETER_EXIT | 820 | 0.0% |
Successors and predecessors for RESUME
Predecessors | Count | Percentage |
---|---|---|
CACHE | 40 | 25.0% |
SEND_GEN | 40 | 25.0% |
POP_TOP | 20 | 12.5% |
CALL | 20 | 12.5% |
CALL_FUNCTION_EX | 20 | 12.5% |
Successors | Count | Percentage |
---|---|---|
JUMP_BACKWARD_NO_INTERRUPT | 40 | 25.0% |
LOAD_GLOBAL | 40 | 25.0% |
POP_TOP | 20 | 12.5% |
LOAD_DEREF | 20 | 12.5% |
LOAD_FAST | 20 | 12.5% |
Successors and predecessors for BINARY_OP_ADD_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 8,000,760 | 100.0% |
BINARY_OP | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST | 8,000,780 | 100.0% |
Successors and predecessors for BINARY_OP_SUBTRACT_FLOAT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 40 | 66.7% |
BINARY_OP | 20 | 33.3% |
Successors | Count | Percentage |
---|---|---|
RETURN_VALUE | 60 | 100.0% |
Successors and predecessors for CALL_ALLOC_AND_ENTER_INIT
Predecessors | Count | Percentage |
---|---|---|
RETURN_CONST | 5,243,400 | 65.5% |
RETURN_VALUE | 2,757,360 | 34.5% |
CALL | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 8,000,780 | 100.0% |
Successors and predecessors for CALL_BUILTIN_CLASS
Predecessors | Count | Percentage |
---|---|---|
CALL | 120 | 33.3% |
LOAD_CONST | 120 | 33.3% |
RETURN_VALUE | 40 | 11.1% |
LOAD_FAST | 40 | 11.1% |
CALL_BUILTIN_CLASS | 40 | 11.1% |
Successors | Count | Percentage |
---|---|---|
CALL_PY_EXACT_ARGS | 80 | 22.2% |
CALL | 60 | 16.7% |
COMPARE_OP | 60 | 16.7% |
STORE_FAST | 60 | 16.7% |
CALL_BUILTIN_CLASS | 40 | 11.1% |
Successors and predecessors for CALL_LEN
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 16,001,720 | 100.0% |
CALL | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 16,001,740 | 100.0% |
Successors and predecessors for CALL_NON_PY_GENERAL
Predecessors | Count | Percentage |
---|---|---|
PUSH_NULL | 120 | 66.7% |
CALL | 60 | 33.3% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 60 | 33.3% |
LOAD_FAST | 60 | 33.3% |
STORE_FAST | 60 | 33.3% |
Successors and predecessors for CALL_PY_EXACT_ARGS
Predecessors | Count | Percentage |
---|---|---|
BINARY_SLICE | 16,001,520 | 100.0% |
CALL | 80 | 0.0% |
CALL_BUILTIN_CLASS | 80 | 0.0% |
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 16,001,680 | 100.0% |
Successors and predecessors for COMPARE_OP_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 16,001,720 | 100.0% |
COMPARE_OP | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 16,001,740 | 100.0% |
Successors and predecessors for FOR_ITER_GEN
Predecessors | Count | Percentage |
---|---|---|
GET_ITER | 300 | 48.4% |
JUMP_BACKWARD | 300 | 48.4% |
FOR_ITER | 20 | 3.2% |
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 320 | 51.6% |
POP_TOP | 300 | 48.4% |
Successors and predecessors for FOR_ITER_RANGE
Predecessors | Count | Percentage |
---|---|---|
JUMP_BACKWARD | 300 | 78.9% |
GET_ITER | 60 | 15.8% |
FOR_ITER | 20 | 5.3% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 300 | 78.9% |
LOAD_GLOBAL | 40 | 10.5% |
LOAD_GLOBAL_MODULE | 40 | 10.5% |
Successors and predecessors for LOAD_ATTR_INSTANCE_VALUE
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 128,002,600 | 100.0% |
LOAD_ATTR | 100 | 0.0% |
Successors | Count | Percentage |
---|---|---|
TO_BOOL_NONE | 32,001,640 | 25.0% |
YIELD_VALUE | 32,000,780 | 25.0% |
GET_YIELD_FROM_ITER | 32,000,360 | 25.0% |
TO_BOOL_ALWAYS_TRUE | 31,999,880 | 25.0% |
TO_BOOL | 40 | 0.0% |
Successors and predecessors for LOAD_ATTR_MODULE
Predecessors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 120 | 66.7% |
LOAD_ATTR | 60 | 33.3% |
Successors | Count | Percentage |
---|---|---|
PUSH_NULL | 180 | 100.0% |
Successors and predecessors for LOAD_GLOBAL_BUILTIN
Predecessors | Count | Percentage |
---|---|---|
RESUME_CHECK | 16,001,760 | 100.0% |
LOAD_GLOBAL | 140 | 0.0% |
LOAD_GLOBAL_MODULE | 80 | 0.0% |
POP_JUMP_IF_TRUE | 40 | 0.0% |
CALL_BUILTIN_CLASS | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 16,001,800 | 100.0% |
LOAD_CONST | 180 | 0.0% |
LOAD_GLOBAL | 40 | 0.0% |
LOAD_GLOBAL_BUILTIN | 40 | 0.0% |
LOAD_GLOBAL_MODULE | 40 | 0.0% |
Successors and predecessors for LOAD_GLOBAL_MODULE
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 8,000,840 | 33.3% |
BINARY_SUBSCR | 8,000,760 | 33.3% |
LOAD_GLOBAL_MODULE | 8,000,760 | 33.3% |
LOAD_GLOBAL | 160 | 0.0% |
RETURN_VALUE | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 8,000,780 | 33.3% |
LOAD_FAST_LOAD_FAST | 8,000,780 | 33.3% |
LOAD_GLOBAL_MODULE | 8,000,760 | 33.3% |
LOAD_ATTR_MODULE | 120 | 0.0% |
LOAD_GLOBAL_BUILTIN | 80 | 0.0% |
Successors and predecessors for RESUME_CHECK
Predecessors | Count | Percentage |
---|---|---|
SEND_GEN | 470,064,200 | 84.2% |
POP_TOP | 32,000,780 | 5.7% |
ENTER_EXECUTOR | 31,999,660 | 5.7% |
CALL_PY_EXACT_ARGS | 16,001,680 | 2.9% |
CALL_ALLOC_AND_ENTER_INIT | 8,000,780 | 1.4% |
Successors | Count | Percentage |
---|---|---|
JUMP_BACKWARD_NO_INTERRUPT | 470,064,200 | 84.2% |
POP_TOP | 32,000,780 | 5.7% |
LOAD_FAST | 32,000,780 | 5.7% |
LOAD_GLOBAL_BUILTIN | 16,001,760 | 2.9% |
LOAD_FAST_LOAD_FAST | 8,000,780 | 1.4% |
Successors and predecessors for SEND_GEN
Predecessors | Count | Percentage |
---|---|---|
JUMP_BACKWARD_NO_INTERRUPT | 470,064,220 | 93.6% |
LOAD_CONST | 32,000,340 | 6.4% |
SEND | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 470,064,200 | 93.6% |
POP_TOP | 32,000,360 | 6.4% |
RESUME | 40 | 0.0% |
Successors and predecessors for STORE_ATTR_INSTANCE_VALUE
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 24,002,280 | 100.0% |
STORE_ATTR | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 16,001,560 | 66.7% |
RETURN_CONST | 8,000,780 | 33.3% |
Successors and predecessors for TO_BOOL_ALWAYS_TRUE
Predecessors | Count | Percentage |
---|---|---|
LOAD_ATTR_INSTANCE_VALUE | 31,999,880 | 99.1% |
TO_BOOL_NONE | 275,440 | 0.9% |
TO_BOOL | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 31,999,880 | 99.1% |
TO_BOOL_NONE | 275,460 | 0.9% |
Successors and predecessors for TO_BOOL_NONE
Predecessors | Count | Percentage |
---|---|---|
LOAD_ATTR_INSTANCE_VALUE | 32,001,640 | 99.1% |
TO_BOOL_ALWAYS_TRUE | 275,460 | 0.9% |
TO_BOOL | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 32,001,680 | 99.1% |
TO_BOOL_ALWAYS_TRUE | 275,440 | 0.9% |
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. |
8,000,840 | 50.0% |
hit
ⓘSpecialized instructions that complete. |
8,000,840 | 50.0% |
Success | Count | Ratio |
---|---|---|
Success | 40 | 1.8% |
Failure | 2,140 | 98.2% |
Failure kind | Count | Ratio |
---|---|---|
floor divide | 2,140 | 100.0% |
specialization stats for BINARY_SLICE family
specialization stats for BINARY_SUBSCR family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
8,000,800 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 0 | 0.0% |
Failure | 2,140 | 100.0% |
Failure kind | Count | Ratio |
---|---|---|
sequence int | 2,140 | 100.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. |
40,004,560 | 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. |
100 | 0.0% |
hit
ⓘSpecialized instructions that complete. |
16,001,740 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 20 | 50.0% |
Failure | 20 | 50.0% |
Failure kind | Count | Ratio |
---|---|---|
list | 20 | 100.0% |
specialization stats for FOR_ITER family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
40 | 3.7% |
hit
ⓘSpecialized instructions that complete. |
1,000 | 92.6% |
Success | Count | Ratio |
---|---|---|
Success | 40 | 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. |
160 | 0.0% |
hit
ⓘSpecialized instructions that complete. |
128,002,880 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 160 | 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. |
300 | 0.0% |
hit
ⓘSpecialized instructions that complete. |
40,004,740 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 300 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for POP_JUMP_IF_FALSE family
specialization stats for POP_JUMP_IF_TRUE family
specialization stats for SEND family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
40 | 0.0% |
hit
ⓘSpecialized instructions that complete. |
502,064,600 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 40 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for STORE_ATTR family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
60 | 0.0% |
hit
ⓘSpecialized instructions that complete. |
24,002,340 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 60 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for TO_BOOL family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
28,648,380 | 61.1% |
hit
ⓘSpecialized instructions that complete. |
17,677,260 | 37.7% |
miss
ⓘSpecialized instructions that deopt. |
29,199,240 | 62.3% |
Success | Count | Ratio |
---|---|---|
Success | 550,940 | 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. |
1,660,164,640 | 52.7% |
Not specialized
ⓘInstructions that could be specialized but aren't, e.g. |
112,013,020 | 3.6% |
Specialized hits
ⓘSpecialized instructions, e.g. |
1,351,500,560 | 42.9% |
Specialized misses
ⓘSpecialized instructions, e.g. |
29,203,180 | 0.9% |
Breakdown of deferred (not specialized) instruction counts by family
Name | Count | Ratio |
---|---|---|
TO_BOOL | 28,648,380 | 64.2% |
BINARY_OP | 8,000,840 | 17.9% |
BINARY_SUBSCR | 8,000,800 | 17.9% |
CALL | 300 | 0.0% |
LOAD_GLOBAL | 300 | 0.0% |
LOAD_ATTR | 160 | 0.0% |
COMPARE_OP | 100 | 0.0% |
STORE_ATTR | 60 | 0.0% |
FOR_ITER | 40 | 0.0% |
SEND | 40 | 0.0% |
Breakdown of misses (specialized deopts) instruction counts by family
Name | Count | Ratio |
---|---|---|
TO_BOOL_NONE | 14,599,860 | 50.0% |
TO_BOOL_ALWAYS_TRUE | 14,599,380 | 50.0% |
RESUME | 3,940 | 0.0% |
RESUME_CHECK | 3,940 | 0.0% |
CACHE | 0 | 0.0% |
END_FOR | 0 | 0.0% |
END_SEND | 0 | 0.0% |
EXIT_INIT_CHECK | 0 | 0.0% |
GET_ITER | 0 | 0.0% |
GET_YIELD_FROM_ITER | 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 | 32,001,720 | 5.4% |
Calls to Python functions inlined | 558,067,640 | 94.6% |
Calls via PyEval_EvalFrame (total) | 32,001,720 | 5.4% |
Calls via PyEval_EvalFrame (vector) | 32,000,820 | 5.4% |
Calls via PyEval_EvalFrame (generator) | 900 | 0.0% |
Calls via PyEval_EvalFrame (legacy) | 0 | 0.0% |
Calls via PyEval_EvalFrame (function vectorcall) | 32,000,820 | 5.4% |
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) | 32,000,800 | 5.4% |
Calls via PyEval_EvalFrame (method) | 0 | 0.0% |
Frame objects created | 0 | 0.0% |
Frames pushed | 64,004,300 | 10.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 | 340 | 0.0% |
Frees to freelist | 1,080 | |
Allocations | 96,031,360 | 100.0% |
Allocations to 512 bytes | 96,031,360 | 100.0% |
Allocations to 4 kbytes | 0 | 0.0% |
Allocations over 4 kbytes | 0 | 0.0% |
Frees | 96,032,447 | |
Inline values | 8,000,800 | |
Interpreter increfs | 512,062,880 | 92.7% |
Interpreter decrefs | 576,108,980 | 86.7% |
Increfs | 40,209,320 | 7.3% |
Decrefs | 88,201,947 | 13.3% |
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 | 300 | |
Method cache misses | 80 | |
Method cache collisions | 80 | |
Method cache dunder hits | 32,002,980 | |
Method cache dunder misses | 80 |
GC collections and effectiveness
Collected/visits gives some measure of efficiency.
Generation | Collections | Objects collected | Object visits |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 0 | 1,920 | 98,264,380 |
2 | 0 | 0 | 0 |
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. |
7,920 | |
Traces created
ⓘThe number of traces that were successfully created. |
20 | 0.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. |
0 | 0.0% |
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. |
7,900 | 99.7% |
Inner loop found
ⓘA trace is truncated because it has an inner loop |
7,900 | 99.7% |
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 |
31,999,680 | |
Uops executed
ⓘThe total number of uops (micro-operations) that were executed |
191,998,080 | 600.0% |
Count | Ratio | |
---|---|---|
Optimizer attempts
ⓘThe number of times the trace optimizer (_Py_uop_analyze_and_optimize) was run. |
20 | |
Optimizer successes
ⓘThe number of traces that were successfully optimized. |
20 | 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 | 0 | 0.0% |
<= 16 | 20 | 100.0% |
optimized trace length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
<= 2 | 0 | 0.0% |
<= 4 | 0 | 0.0% |
<= 8 | 20 | 100.0% |
trace run length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
uop execution stats
Name | Count | Self | Cumulative | Miss ratio |
---|---|---|---|---|
_SET_IP | 31,999,680 | 16.7% | 16.7% | |
_DYNAMIC_EXIT | 31,999,680 | 16.7% | 33.3% | |
_FOR_ITER_GEN_FRAME | 31,999,680 | 16.7% | 50.0% | |
_PUSH_FRAME | 31,999,680 | 16.7% | 66.7% | |
_START_EXECUTOR | 31,999,680 | 16.7% | 83.3% | |
_TIER2_RESUME_CHECK | 31,999,680 | 16.7% | 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 |
---|---|---|---|
_SET_IP _FOR_ITER_GEN_FRAME | 31,999,680 | 16.7% | 16.7% |
_FOR_ITER_GEN_FRAME _PUSH_FRAME | 31,999,680 | 16.7% | 33.3% |
_PUSH_FRAME _DYNAMIC_EXIT | 31,999,680 | 16.7% | 50.0% |
_START_EXECUTOR _TIER2_RESUME_CHECK | 31,999,680 | 16.7% | 66.7% |
_TIER2_RESUME_CHECK _SET_IP | 31,999,680 | 16.7% | 83.3% |
unsupported opcodes
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