- benchmark: fannkuch
- 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_CONST | 55,720 | 15.8% | 15.8% | |
LOAD_FAST | 40,820 | 11.6% | 27.4% | |
ENTER_EXECUTOR | 32,900 | 9.4% | 36.8% | |
LOAD_FAST_LOAD_FAST | 32,500 | 9.2% | 46.0% | |
POP_JUMP_IF_FALSE | 28,460 | 8.1% | 54.1% | |
COMPARE_OP_INT | 21,460 | 6.1% | 60.2% | |
BINARY_SUBSCR_LIST_INT | 21,060 | 6.0% | 66.2% | |
STORE_FAST | 20,160 | 5.7% | 71.9% | |
PUSH_NULL | 11,400 | 3.2% | 75.2% | |
COPY | 11,000 | 3.1% | 78.3% | |
SWAP | 11,000 | 3.1% | 81.4% | |
CALL_BUILTIN_FAST | 10,960 | 3.1% | 84.5% | |
BINARY_OP_ADD_INT | 9,700 | 2.8% | 87.3% | |
BINARY_OP_SUBTRACT_INT | 6,620 | 1.9% | 89.2% | |
STORE_SUBSCR_LIST_INT | 6,020 | 1.7% | 90.9% | |
POP_TOP | 5,660 | 1.6% | 92.5% | |
TO_BOOL_INT | 5,440 | 1.5% | 94.0% | |
JUMP_FORWARD | 3,840 | 1.1% | 95.1% | |
BINARY_SUBSCR | 3,260 | 0.9% | 96.1% | |
STORE_SLICE | 2,900 | 0.8% | 96.9% | |
BUILD_SLICE | 2,900 | 0.8% | 97.7% | |
BINARY_SLICE | 2,580 | 0.7% | 98.4% | |
JUMP_BACKWARD | 1,360 | 0.4% | 98.8% | |
CALL | 480 | 0.1% | 99.0% | |
BINARY_OP | 360 | 0.1% | 99.1% | |
COMPARE_OP | 360 | 0.1% | 99.2% | |
CALL_BUILTIN_CLASS | 360 | 0.1% | 99.3% | |
LOAD_GLOBAL_BUILTIN | 360 | 0.1% | 99.4% | |
LOAD_GLOBAL | 320 | 0.1% | 99.5% | |
LOAD_ATTR | 280 | 0.1% | 99.6% | |
CALL_NON_PY_GENERAL | 240 | 0.1% | 99.6% | |
NOP | 160 | 0.0% | 99.7% | |
RETURN_VALUE | 160 | 0.0% | 99.7% | |
LOAD_DEREF | 160 | 0.0% | 99.8% | |
LOAD_ATTR_MODULE | 120 | 0.0% | 99.8% | |
LOAD_GLOBAL_MODULE | 120 | 0.0% | 99.8% | |
RESUME_CHECK | 120 | 0.0% | 99.9% | |
INTERPRETER_EXIT | 80 | 0.0% | 99.9% | |
STORE_SUBSCR | 80 | 0.0% | 99.9% | |
TO_BOOL | 80 | 0.0% | 99.9% | |
CALL_FUNCTION_EX | 80 | 0.0% | 99.9% | |
COPY_FREE_VARS | 80 | 0.0% | 100.0% | |
BINARY_OP_SUBTRACT_FLOAT | 60 | 0.0% | 100.0% | |
RESUME | 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_FAST LOAD_CONST | 25,540 | 7.3% | 7.3% |
COMPARE_OP_INT POP_JUMP_IF_FALSE | 19,320 | 5.5% | 12.8% |
ENTER_EXECUTOR ENTER_EXECUTOR | 18,160 | 5.2% | 17.9% |
BINARY_SUBSCR_LIST_INT LOAD_CONST | 13,500 | 3.8% | 21.7% |
STORE_FAST LOAD_FAST | 12,080 | 3.4% | 25.2% |
LOAD_FAST_LOAD_FAST COMPARE_OP_INT | 10,280 | 2.9% | 28.1% |
LOAD_CONST BINARY_OP_ADD_INT | 9,620 | 2.7% | 30.8% |
LOAD_CONST COMPARE_OP_INT | 8,900 | 2.5% | 33.4% |
POP_JUMP_IF_FALSE LOAD_FAST | 8,160 | 2.3% | 35.7% |
LOAD_CONST BINARY_SUBSCR_LIST_INT | 7,920 | 2.3% | 37.9% |
POP_JUMP_IF_FALSE ENTER_EXECUTOR | 7,880 | 2.2% | 40.2% |
LOAD_FAST_LOAD_FAST BINARY_SUBSCR_LIST_INT | 7,560 | 2.1% | 42.3% |
POP_JUMP_IF_FALSE LOAD_FAST_LOAD_FAST | 7,560 | 2.1% | 44.5% |
ENTER_EXECUTOR LOAD_FAST | 7,400 | 2.1% | 46.6% |
BINARY_OP_ADD_INT STORE_FAST | 6,760 | 1.9% | 48.5% |
LOAD_CONST BINARY_OP_SUBTRACT_INT | 6,540 | 1.9% | 50.4% |
LOAD_FAST PUSH_NULL | 5,740 | 1.6% | 52.0% |
POP_TOP LOAD_FAST_LOAD_FAST | 5,500 | 1.6% | 53.6% |
PUSH_NULL LOAD_CONST | 5,500 | 1.6% | 55.1% |
PUSH_NULL LOAD_FAST_LOAD_FAST | 5,500 | 1.6% | 56.7% |
COPY COPY | 5,500 | 1.6% | 58.2% |
LOAD_FAST_LOAD_FAST PUSH_NULL | 5,500 | 1.6% | 59.8% |
LOAD_FAST_LOAD_FAST COPY | 5,500 | 1.6% | 61.4% |
SWAP SWAP | 5,500 | 1.6% | 62.9% |
LOAD_CONST LOAD_CONST | 5,480 | 1.6% | 64.5% |
BINARY_OP_SUBTRACT_INT SWAP | 5,480 | 1.6% | 66.1% |
CALL_BUILTIN_FAST POP_TOP | 5,480 | 1.6% | 67.6% |
STORE_SUBSCR_LIST_INT LOAD_FAST_LOAD_FAST | 5,480 | 1.6% | 69.2% |
COPY BINARY_SUBSCR_LIST_INT | 5,460 | 1.6% | 70.7% |
LOAD_CONST CALL_BUILTIN_FAST | 5,460 | 1.6% | 72.3% |
SWAP STORE_SUBSCR_LIST_INT | 5,460 | 1.6% | 73.8% |
CALL_BUILTIN_FAST CALL_BUILTIN_FAST | 5,460 | 1.6% | 75.4% |
BINARY_SUBSCR_LIST_INT STORE_FAST | 5,440 | 1.5% | 76.9% |
TO_BOOL_INT POP_JUMP_IF_FALSE | 5,440 | 1.5% | 78.5% |
LOAD_FAST TO_BOOL_INT | 5,400 | 1.5% | 80.0% |
STORE_FAST LOAD_FAST_LOAD_FAST | 3,900 | 1.1% | 81.1% |
ENTER_EXECUTOR LOAD_FAST_LOAD_FAST | 3,880 | 1.1% | 82.2% |
POP_JUMP_IF_FALSE JUMP_FORWARD | 3,840 | 1.1% | 83.3% |
JUMP_FORWARD ENTER_EXECUTOR | 3,500 | 1.0% | 84.3% |
ENTER_EXECUTOR POP_JUMP_IF_FALSE | 3,460 | 1.0% | 85.3% |
LOAD_CONST LOAD_FAST | 2,980 | 0.8% | 86.1% |
BINARY_SUBSCR LOAD_FAST | 2,920 | 0.8% | 87.0% |
STORE_SLICE LOAD_FAST | 2,900 | 0.8% | 87.8% |
BUILD_SLICE BINARY_SUBSCR | 2,900 | 0.8% | 88.6% |
LOAD_CONST BUILD_SLICE | 2,900 | 0.8% | 89.4% |
LOAD_FAST_LOAD_FAST LOAD_CONST | 2,900 | 0.8% | 90.3% |
BINARY_OP_ADD_INT STORE_SLICE | 2,880 | 0.8% | 91.1% |
LOAD_CONST STORE_FAST | 2,660 | 0.8% | 91.8% |
STORE_FAST LOAD_CONST | 2,660 | 0.8% | 92.6% |
BINARY_SLICE STORE_FAST | 2,580 | 0.7% | 93.3% |
LOAD_CONST BINARY_SLICE | 2,580 | 0.7% | 94.1% |
COMPARE_OP_INT ENTER_EXECUTOR | 2,140 | 0.6% | 94.7% |
BINARY_SUBSCR_LIST_INT LOAD_FAST | 2,120 | 0.6% | 95.3% |
LOAD_FAST COMPARE_OP_INT | 2,100 | 0.6% | 95.9% |
LOAD_FAST STORE_FAST | 1,280 | 0.4% | 96.2% |
STORE_FAST ENTER_EXECUTOR | 1,200 | 0.3% | 96.6% |
POP_JUMP_IF_FALSE JUMP_BACKWARD | 1,020 | 0.3% | 96.9% |
JUMP_BACKWARD LOAD_FAST | 660 | 0.2% | 97.0% |
JUMP_BACKWARD LOAD_FAST_LOAD_FAST | 660 | 0.2% | 97.2% |
BINARY_OP_SUBTRACT_INT STORE_FAST | 600 | 0.2% | 97.4% |
LOAD_FAST_LOAD_FAST LOAD_FAST | 560 | 0.2% | 97.6% |
STORE_SUBSCR_LIST_INT LOAD_FAST | 540 | 0.2% | 97.7% |
BINARY_OP_SUBTRACT_INT STORE_SUBSCR_LIST_INT | 520 | 0.1% | 97.9% |
JUMP_FORWARD JUMP_BACKWARD | 340 | 0.1% | 98.0% |
LOAD_CONST BINARY_OP | 320 | 0.1% | 98.1% |
LOAD_CONST COMPARE_OP | 200 | 0.1% | 98.1% |
COMPARE_OP POP_JUMP_IF_FALSE | 180 | 0.1% | 98.2% |
COMPARE_OP COMPARE_OP_INT | 180 | 0.1% | 98.2% |
LOAD_ATTR STORE_FAST | 180 | 0.1% | 98.3% |
CALL_BUILTIN_CLASS STORE_FAST | 180 | 0.1% | 98.3% |
PUSH_NULL CALL | 160 | 0.0% | 98.4% |
PUSH_NULL CALL_NON_PY_GENERAL | 160 | 0.0% | 98.4% |
LOAD_FAST RETURN_VALUE | 160 | 0.0% | 98.4% |
LOAD_FAST LOAD_ATTR | 160 | 0.0% | 98.5% |
BINARY_SUBSCR BINARY_SUBSCR | 120 | 0.0% | 98.5% |
BINARY_SUBSCR BINARY_SUBSCR_LIST_INT | 120 | 0.0% | 98.6% |
CALL CALL_BUILTIN_CLASS | 120 | 0.0% | 98.6% |
LOAD_CONST BINARY_SUBSCR | 120 | 0.0% | 98.6% |
LOAD_FAST_LOAD_FAST COMPARE_OP | 120 | 0.0% | 98.7% |
LOAD_GLOBAL LOAD_GLOBAL_BUILTIN | 120 | 0.0% | 98.7% |
CALL_BUILTIN_CLASS CALL_BUILTIN_CLASS | 120 | 0.0% | 98.7% |
CALL_NON_PY_GENERAL POP_TOP | 120 | 0.0% | 98.8% |
LOAD_GLOBAL_BUILTIN LOAD_FAST | 120 | 0.0% | 98.8% |
LOAD_GLOBAL_BUILTIN LOAD_GLOBAL_BUILTIN | 120 | 0.0% | 98.8% |
BINARY_OP STORE_FAST | 100 | 0.0% | 98.9% |
NOP LOAD_DEREF | 80 | 0.0% | 98.9% |
NOP LOAD_FAST | 80 | 0.0% | 98.9% |
POP_TOP NOP | 80 | 0.0% | 98.9% |
POP_TOP LOAD_FAST | 80 | 0.0% | 99.0% |
PUSH_NULL LOAD_FAST | 80 | 0.0% | 99.0% |
RETURN_VALUE INTERPRETER_EXIT | 80 | 0.0% | 99.0% |
BINARY_OP BINARY_OP_ADD_INT | 80 | 0.0% | 99.0% |
BINARY_OP BINARY_OP_SUBTRACT_INT | 80 | 0.0% | 99.0% |
CALL CALL | 80 | 0.0% | 99.1% |
CALL STORE_FAST | 80 | 0.0% | 99.1% |
CALL CALL_NON_PY_GENERAL | 80 | 0.0% | 99.1% |
CALL_FUNCTION_EX COPY_FREE_VARS | 80 | 0.0% | 99.1% |
LOAD_DEREF PUSH_NULL | 80 | 0.0% | 99.2% |
LOAD_DEREF STORE_FAST | 80 | 0.0% | 99.2% |
LOAD_FAST TO_BOOL | 80 | 0.0% | 99.2% |
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 | 2,580 | 100.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 2,580 | 100.0% |
Successors and predecessors for STORE_SLICE
Predecessors | Count | Percentage |
---|---|---|
BINARY_OP_ADD_INT | 2,880 | 99.3% |
BINARY_OP | 20 | 0.7% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 2,900 | 100.0% |
Successors and predecessors for CACHE
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 60 | 75.0% |
RESUME | 20 | 25.0% |
Successors and predecessors for BINARY_SUBSCR
Predecessors | Count | Percentage |
---|---|---|
BUILD_SLICE | 2,900 | 89.0% |
BINARY_SUBSCR | 120 | 3.7% |
LOAD_CONST | 120 | 3.7% |
LOAD_FAST_LOAD_FAST | 80 | 2.5% |
COPY | 40 | 1.2% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 2,920 | 89.6% |
BINARY_SUBSCR | 120 | 3.7% |
BINARY_SUBSCR_LIST_INT | 120 | 3.7% |
LOAD_CONST | 60 | 1.8% |
STORE_FAST | 40 | 1.2% |
Successors and predecessors for INTERPRETER_EXIT
Predecessors | Count | Percentage |
---|---|---|
RETURN_VALUE | 80 | 100.0% |
Successors and predecessors for NOP
Predecessors | Count | Percentage |
---|---|---|
POP_TOP | 80 | 50.0% |
STORE_FAST | 80 | 50.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_DEREF | 80 | 50.0% |
LOAD_FAST | 80 | 50.0% |
Successors and predecessors for POP_TOP
Predecessors | Count | Percentage |
---|---|---|
CALL_BUILTIN_FAST | 5,480 | 96.8% |
CALL_NON_PY_GENERAL | 120 | 2.1% |
CALL | 60 | 1.1% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 5,500 | 97.2% |
NOP | 80 | 1.4% |
LOAD_FAST | 80 | 1.4% |
Successors and predecessors for PUSH_NULL
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 5,740 | 50.4% |
LOAD_FAST_LOAD_FAST | 5,500 | 48.2% |
LOAD_DEREF | 80 | 0.7% |
LOAD_ATTR_MODULE | 60 | 0.5% |
LOAD_ATTR | 20 | 0.2% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST | 5,500 | 48.2% |
LOAD_FAST_LOAD_FAST | 5,500 | 48.2% |
CALL | 160 | 1.4% |
CALL_NON_PY_GENERAL | 160 | 1.4% |
LOAD_FAST | 80 | 0.7% |
Successors and predecessors for RETURN_VALUE
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 160 | 100.0% |
Successors | Count | Percentage |
---|---|---|
INTERPRETER_EXIT | 80 | 50.0% |
LOAD_GLOBAL | 40 | 25.0% |
LOAD_GLOBAL_MODULE | 40 | 25.0% |
Successors and predecessors for STORE_SUBSCR
Predecessors | Count | Percentage |
---|---|---|
SWAP | 40 | 50.0% |
BINARY_OP | 20 | 25.0% |
BINARY_OP_SUBTRACT_INT | 20 | 25.0% |
Successors | Count | Percentage |
---|---|---|
STORE_SUBSCR_LIST_INT | 40 | 50.0% |
LOAD_FAST | 20 | 25.0% |
LOAD_FAST_LOAD_FAST | 20 | 25.0% |
Successors and predecessors for TO_BOOL
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 80 | 100.0% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 40 | 50.0% |
TO_BOOL_INT | 40 | 50.0% |
Successors and predecessors for BINARY_OP
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 320 | 88.9% |
LOAD_FAST | 40 | 11.1% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 100 | 27.8% |
BINARY_OP_ADD_INT | 80 | 22.2% |
BINARY_OP_SUBTRACT_INT | 80 | 22.2% |
STORE_SLICE | 20 | 5.6% |
STORE_SUBSCR | 20 | 5.6% |
Successors and predecessors for BUILD_SLICE
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 2,900 | 100.0% |
Successors | Count | Percentage |
---|---|---|
BINARY_SUBSCR | 2,900 | 100.0% |
Successors and predecessors for CALL
Predecessors | Count | Percentage |
---|---|---|
PUSH_NULL | 160 | 33.3% |
CALL | 80 | 16.7% |
LOAD_FAST | 80 | 16.7% |
CALL_BUILTIN_CLASS | 60 | 12.5% |
LOAD_CONST | 40 | 8.3% |
Successors | Count | Percentage |
---|---|---|
CALL_BUILTIN_CLASS | 120 | 25.0% |
CALL | 80 | 16.7% |
STORE_FAST | 80 | 16.7% |
CALL_NON_PY_GENERAL | 80 | 16.7% |
POP_TOP | 60 | 12.5% |
Successors and predecessors for CALL_FUNCTION_EX
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 80 | 100.0% |
Successors | Count | Percentage |
---|---|---|
COPY_FREE_VARS | 80 | 100.0% |
Successors and predecessors for COMPARE_OP
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 200 | 55.6% |
LOAD_FAST_LOAD_FAST | 120 | 33.3% |
LOAD_FAST | 40 | 11.1% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 180 | 50.0% |
COMPARE_OP_INT | 180 | 50.0% |
Successors and predecessors for COPY
Predecessors | Count | Percentage |
---|---|---|
COPY | 5,500 | 50.0% |
LOAD_FAST_LOAD_FAST | 5,500 | 50.0% |
Successors | Count | Percentage |
---|---|---|
COPY | 5,500 | 50.0% |
BINARY_SUBSCR_LIST_INT | 5,460 | 49.6% |
BINARY_SUBSCR | 40 | 0.4% |
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 |
---|---|---|
ENTER_EXECUTOR | 18,160 | 55.2% |
POP_JUMP_IF_FALSE | 7,880 | 24.0% |
JUMP_FORWARD | 3,500 | 10.6% |
COMPARE_OP_INT | 2,140 | 6.5% |
STORE_FAST | 1,200 | 3.6% |
Successors | Count | Percentage |
---|---|---|
ENTER_EXECUTOR | 18,160 | 55.2% |
LOAD_FAST | 7,400 | 22.5% |
LOAD_FAST_LOAD_FAST | 3,880 | 11.8% |
POP_JUMP_IF_FALSE | 3,460 | 10.5% |
Successors and predecessors for JUMP_BACKWARD
Predecessors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 1,020 | 75.0% |
JUMP_FORWARD | 340 | 25.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 660 | 48.5% |
LOAD_FAST_LOAD_FAST | 660 | 48.5% |
ENTER_EXECUTOR | 20 | 1.5% |
POP_JUMP_IF_FALSE | 20 | 1.5% |
Successors and predecessors for JUMP_FORWARD
Predecessors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 3,840 | 100.0% |
Successors | Count | Percentage |
---|---|---|
ENTER_EXECUTOR | 3,500 | 91.1% |
JUMP_BACKWARD | 340 | 8.9% |
Successors and predecessors for LOAD_ATTR
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 160 | 57.1% |
LOAD_ATTR | 40 | 14.3% |
LOAD_GLOBAL | 40 | 14.3% |
LOAD_GLOBAL_MODULE | 40 | 14.3% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 180 | 64.3% |
LOAD_ATTR | 40 | 14.3% |
LOAD_ATTR_MODULE | 40 | 14.3% |
PUSH_NULL | 20 | 7.1% |
Successors and predecessors for LOAD_CONST
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 25,540 | 45.8% |
BINARY_SUBSCR_LIST_INT | 13,500 | 24.2% |
PUSH_NULL | 5,500 | 9.9% |
LOAD_CONST | 5,480 | 9.8% |
LOAD_FAST_LOAD_FAST | 2,900 | 5.2% |
Successors | Count | Percentage |
---|---|---|
BINARY_OP_ADD_INT | 9,620 | 17.3% |
COMPARE_OP_INT | 8,900 | 16.0% |
BINARY_SUBSCR_LIST_INT | 7,920 | 14.2% |
BINARY_OP_SUBTRACT_INT | 6,540 | 11.7% |
LOAD_CONST | 5,480 | 9.8% |
Successors and predecessors for LOAD_DEREF
Predecessors | Count | Percentage |
---|---|---|
NOP | 80 | 50.0% |
STORE_FAST | 80 | 50.0% |
Successors | Count | Percentage |
---|---|---|
PUSH_NULL | 80 | 50.0% |
STORE_FAST | 80 | 50.0% |
Successors and predecessors for LOAD_FAST
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 12,080 | 29.6% |
POP_JUMP_IF_FALSE | 8,160 | 20.0% |
ENTER_EXECUTOR | 7,400 | 18.1% |
LOAD_CONST | 2,980 | 7.3% |
BINARY_SUBSCR | 2,920 | 7.2% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST | 25,540 | 62.6% |
PUSH_NULL | 5,740 | 14.1% |
TO_BOOL_INT | 5,400 | 13.2% |
COMPARE_OP_INT | 2,100 | 5.1% |
STORE_FAST | 1,280 | 3.1% |
Successors and predecessors for LOAD_FAST_LOAD_FAST
Predecessors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 7,560 | 23.3% |
POP_TOP | 5,500 | 16.9% |
PUSH_NULL | 5,500 | 16.9% |
STORE_SUBSCR_LIST_INT | 5,480 | 16.9% |
STORE_FAST | 3,900 | 12.0% |
Successors | Count | Percentage |
---|---|---|
COMPARE_OP_INT | 10,280 | 31.6% |
BINARY_SUBSCR_LIST_INT | 7,560 | 23.3% |
PUSH_NULL | 5,500 | 16.9% |
COPY | 5,500 | 16.9% |
LOAD_CONST | 2,900 | 8.9% |
Successors and predecessors for LOAD_GLOBAL
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 80 | 25.0% |
LOAD_GLOBAL | 60 | 18.8% |
LOAD_GLOBAL_BUILTIN | 60 | 18.8% |
RETURN_VALUE | 40 | 12.5% |
RESUME | 40 | 12.5% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_BUILTIN | 120 | 37.5% |
LOAD_GLOBAL | 60 | 18.8% |
LOAD_ATTR | 40 | 12.5% |
LOAD_FAST | 40 | 12.5% |
LOAD_GLOBAL_MODULE | 40 | 12.5% |
Successors and predecessors for POP_JUMP_IF_FALSE
Predecessors | Count | Percentage |
---|---|---|
COMPARE_OP_INT | 19,320 | 67.9% |
TO_BOOL_INT | 5,440 | 19.1% |
ENTER_EXECUTOR | 3,460 | 12.2% |
COMPARE_OP | 180 | 0.6% |
TO_BOOL | 40 | 0.1% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 8,160 | 28.7% |
ENTER_EXECUTOR | 7,880 | 27.7% |
LOAD_FAST_LOAD_FAST | 7,560 | 26.6% |
JUMP_FORWARD | 3,840 | 13.5% |
JUMP_BACKWARD | 1,020 | 3.6% |
Successors and predecessors for STORE_FAST
Predecessors | Count | Percentage |
---|---|---|
BINARY_OP_ADD_INT | 6,760 | 33.5% |
BINARY_SUBSCR_LIST_INT | 5,440 | 27.0% |
LOAD_CONST | 2,660 | 13.2% |
BINARY_SLICE | 2,580 | 12.8% |
LOAD_FAST | 1,280 | 6.3% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 12,080 | 59.9% |
LOAD_FAST_LOAD_FAST | 3,900 | 19.3% |
LOAD_CONST | 2,660 | 13.2% |
ENTER_EXECUTOR | 1,200 | 6.0% |
NOP | 80 | 0.4% |
Successors and predecessors for SWAP
Predecessors | Count | Percentage |
---|---|---|
SWAP | 5,500 | 50.0% |
BINARY_OP_SUBTRACT_INT | 5,480 | 49.8% |
BINARY_OP | 20 | 0.2% |
Successors | Count | Percentage |
---|---|---|
SWAP | 5,500 | 50.0% |
STORE_SUBSCR_LIST_INT | 5,460 | 49.6% |
STORE_SUBSCR | 40 | 0.4% |
Successors and predecessors for RESUME
Predecessors | Count | Percentage |
---|---|---|
CACHE | 20 | 50.0% |
COPY_FREE_VARS | 20 | 50.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL | 40 | 100.0% |
Successors and predecessors for BINARY_OP_ADD_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 9,620 | 99.2% |
BINARY_OP | 80 | 0.8% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 6,760 | 69.7% |
STORE_SLICE | 2,880 | 29.7% |
CALL_BUILTIN_CLASS | 40 | 0.4% |
CALL | 20 | 0.2% |
Successors and predecessors for BINARY_OP_SUBTRACT_FLOAT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 40 | 66.7% |
BINARY_OP | 20 | 33.3% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 60 | 100.0% |
Successors and predecessors for BINARY_OP_SUBTRACT_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 6,540 | 98.8% |
BINARY_OP | 80 | 1.2% |
Successors | Count | Percentage |
---|---|---|
SWAP | 5,480 | 82.8% |
STORE_FAST | 600 | 9.1% |
STORE_SUBSCR_LIST_INT | 520 | 7.9% |
STORE_SUBSCR | 20 | 0.3% |
Successors and predecessors for BINARY_SUBSCR_LIST_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 7,920 | 37.6% |
LOAD_FAST_LOAD_FAST | 7,560 | 35.9% |
COPY | 5,460 | 25.9% |
BINARY_SUBSCR | 120 | 0.6% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST | 13,500 | 64.1% |
STORE_FAST | 5,440 | 25.8% |
LOAD_FAST | 2,120 | 10.1% |
Successors and predecessors for CALL_BUILTIN_CLASS
Predecessors | Count | Percentage |
---|---|---|
CALL | 120 | 33.3% |
CALL_BUILTIN_CLASS | 120 | 33.3% |
LOAD_FAST | 80 | 22.2% |
BINARY_OP_ADD_INT | 40 | 11.1% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 180 | 50.0% |
CALL_BUILTIN_CLASS | 120 | 33.3% |
CALL | 60 | 16.7% |
Successors and predecessors for CALL_BUILTIN_FAST
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 5,460 | 49.8% |
CALL_BUILTIN_FAST | 5,460 | 49.8% |
CALL | 40 | 0.4% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 5,480 | 50.0% |
CALL_BUILTIN_FAST | 5,460 | 49.8% |
CALL | 20 | 0.2% |
Successors and predecessors for CALL_NON_PY_GENERAL
Predecessors | Count | Percentage |
---|---|---|
PUSH_NULL | 160 | 66.7% |
CALL | 80 | 33.3% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 120 | 50.0% |
LOAD_FAST | 60 | 25.0% |
STORE_FAST | 60 | 25.0% |
Successors and predecessors for COMPARE_OP_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 10,280 | 47.9% |
LOAD_CONST | 8,900 | 41.5% |
LOAD_FAST | 2,100 | 9.8% |
COMPARE_OP | 180 | 0.8% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 19,320 | 90.0% |
ENTER_EXECUTOR | 2,140 | 10.0% |
Successors and predecessors for LOAD_ATTR_MODULE
Predecessors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 80 | 66.7% |
LOAD_ATTR | 40 | 33.3% |
Successors | Count | Percentage |
---|---|---|
PUSH_NULL | 60 | 50.0% |
STORE_FAST | 60 | 50.0% |
Successors and predecessors for LOAD_GLOBAL_BUILTIN
Predecessors | Count | Percentage |
---|---|---|
LOAD_GLOBAL | 120 | 33.3% |
LOAD_GLOBAL_BUILTIN | 120 | 33.3% |
STORE_FAST | 80 | 22.2% |
RESUME_CHECK | 40 | 11.1% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 120 | 33.3% |
LOAD_GLOBAL_BUILTIN | 120 | 33.3% |
LOAD_CONST | 60 | 16.7% |
LOAD_GLOBAL | 60 | 16.7% |
Successors and predecessors for LOAD_GLOBAL_MODULE
Predecessors | Count | Percentage |
---|---|---|
RETURN_VALUE | 40 | 33.3% |
LOAD_GLOBAL | 40 | 33.3% |
RESUME_CHECK | 40 | 33.3% |
Successors | Count | Percentage |
---|---|---|
LOAD_ATTR_MODULE | 80 | 66.7% |
LOAD_ATTR | 40 | 33.3% |
Successors and predecessors for RESUME_CHECK
Predecessors | Count | Percentage |
---|---|---|
CACHE | 60 | 50.0% |
COPY_FREE_VARS | 60 | 50.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL | 40 | 33.3% |
LOAD_GLOBAL_BUILTIN | 40 | 33.3% |
LOAD_GLOBAL_MODULE | 40 | 33.3% |
Successors and predecessors for STORE_SUBSCR_LIST_INT
Predecessors | Count | Percentage |
---|---|---|
SWAP | 5,460 | 90.7% |
BINARY_OP_SUBTRACT_INT | 520 | 8.6% |
STORE_SUBSCR | 40 | 0.7% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 5,480 | 91.0% |
LOAD_FAST | 540 | 9.0% |
Successors and predecessors for TO_BOOL_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 5,400 | 99.3% |
TO_BOOL | 40 | 0.7% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 5,440 | 100.0% |
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. |
180 | 1.1% |
hit
ⓘSpecialized instructions that complete. |
16,380 | 97.8% |
Success | Count | Ratio |
---|---|---|
Success | 180 | 100.0% |
Failure | 0 | 0.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. |
3,020 | 12.4% |
hit
ⓘSpecialized instructions that complete. |
21,060 | 86.6% |
Success | Count | Ratio |
---|---|---|
Success | 120 | 50.0% |
Failure | 120 | 50.0% |
Failure kind | Count | Ratio |
---|---|---|
list slice | 120 | 100.0% |
specialization stats for CALL family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
240 | 2.0% |
hit
ⓘSpecialized instructions that complete. |
11,320 | 95.9% |
Success | Count | Ratio |
---|---|---|
Success | 240 | 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. |
180 | 0.8% |
hit
ⓘSpecialized instructions that complete. |
21,460 | 98.4% |
Success | Count | Ratio |
---|---|---|
Success | 180 | 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. |
200 | 50.0% |
hit
ⓘSpecialized instructions that complete. |
120 | 30.0% |
Success | Count | Ratio |
---|---|---|
Success | 40 | 50.0% |
Failure | 40 | 50.0% |
Failure kind | Count | Ratio |
---|---|---|
method | 40 | 100.0% |
specialization stats for LOAD_GLOBAL family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
160 | 20.0% |
hit
ⓘSpecialized instructions that complete. |
480 | 60.0% |
Success | Count | Ratio |
---|---|---|
Success | 160 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for POP_JUMP_IF_FALSE family
specialization stats for STORE_SLICE family
specialization stats for STORE_SUBSCR family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
40 | 0.7% |
hit
ⓘSpecialized instructions that complete. |
6,020 | 98.7% |
Success | Count | Ratio |
---|---|---|
Success | 40 | 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. |
40 | 0.7% |
hit
ⓘSpecialized instructions that complete. |
5,440 | 98.6% |
Success | Count | Ratio |
---|---|---|
Success | 40 | 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. |
230,020 | 65.4% |
Not specialized
ⓘInstructions that could be specialized but aren't, e.g. |
39,160 | 11.1% |
Specialized hits
ⓘSpecialized instructions, e.g. |
82,640 | 23.5% |
Specialized misses
ⓘSpecialized instructions, e.g. |
0 | 0.0% |
Breakdown of deferred (not specialized) instruction counts by family
Name | Count | Ratio |
---|---|---|
BINARY_SUBSCR | 3,020 | 74.4% |
CALL | 240 | 5.9% |
LOAD_ATTR | 200 | 4.9% |
BINARY_OP | 180 | 4.4% |
COMPARE_OP | 180 | 4.4% |
LOAD_GLOBAL | 160 | 3.9% |
STORE_SUBSCR | 40 | 1.0% |
TO_BOOL | 40 | 1.0% |
BINARY_SLICE | 0 | 0.0% |
STORE_SLICE | 0 | 0.0% |
Breakdown of misses (specialized deopts) instruction counts by family
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 | 80 | 50.0% |
Calls to Python functions inlined | 80 | 50.0% |
Calls via PyEval_EvalFrame (total) | 80 | 50.0% |
Calls via PyEval_EvalFrame (vector) | 80 | 50.0% |
Calls via PyEval_EvalFrame (generator) | 0 | 0.0% |
Calls via PyEval_EvalFrame (legacy) | 0 | 0.0% |
Calls via PyEval_EvalFrame (function vectorcall) | 80 | 50.0% |
Calls via PyEval_EvalFrame (build class) | 0 | 0.0% |
Calls via PyEval_EvalFrame (slot) | 0 | 0.0% |
Calls via PyEval_EvalFrame (function ex) | 80 | 50.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 | 160 | 100.0% |
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 | 161,482,160 | 47.8% |
Frees to freelist | 161,482,340 | |
Allocations | 175,998,560 | 52.2% |
Allocations to 512 bytes | 175,998,380 | 52.2% |
Allocations to 4 kbytes | 180 | 0.0% |
Allocations over 4 kbytes | 0 | 0.0% |
Frees | 175,998,081 | |
Inline values | 0 | |
Interpreter increfs | 963,413,800 | 87.4% |
Interpreter decrefs | 1,424,877,960 | 91.1% |
Increfs | 138,500,300 | 12.6% |
Decrefs | 138,500,241 | 8.9% |
Materialize dict (on request) | 0 | |
Materialize dict (new key) | 0 | |
Materialize dict (too big) | 0 | |
Materialize dict (str subclass) | 0 | |
Method cache hits | 212 | |
Method cache misses | 28 | |
Method cache collisions | 28 | |
Method cache dunder hits | 0 | |
Method cache dunder misses | 0 |
GC collections and effectiveness
Collected/visits gives some measure of efficiency.
Generation | Collections | Objects collected | Object visits |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 |
2 | 0 | 0 | 0 |
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. |
220 | |
Traces created
ⓘThe number of traces that were successfully created. |
220 | 100.0% |
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. |
0 | 0.0% |
Inner loop found
ⓘA trace is truncated because it has an inner loop |
140 | 63.6% |
Recursive call
ⓘA trace is truncated because it has a recursive call. |
0 | 0.0% |
Low confidence
ⓘA trace is abandoned because the likelihood of the jump to top being taken is too low. |
60 | 27.3% |
Executors invalidated
ⓘThe number of executors that were invalidated due to watched dictionary changes. |
0 | 0.0% |
Traces executed
ⓘThe number of traces that were executed |
176,883,160 | |
Uops executed
ⓘThe total number of uops (micro-operations) that were executed |
7,850,736,060 | 4,438.4% |
Count | Ratio | |
---|---|---|
Optimizer attempts
ⓘThe number of times the trace optimizer (_Py_uop_analyze_and_optimize) was run. |
220 | |
Optimizer successes
ⓘThe number of traces that were successfully optimized. |
220 | 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 | 9.1% |
<= 16 | 0 | 0.0% |
<= 32 | 20 | 9.1% |
<= 64 | 80 | 36.4% |
<= 128 | 100 | 45.5% |
optimized trace length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
<= 2 | 0 | 0.0% |
<= 4 | 20 | 9.1% |
<= 8 | 0 | 0.0% |
<= 16 | 20 | 9.1% |
<= 32 | 40 | 18.2% |
<= 64 | 120 | 54.5% |
<= 128 | 20 | 9.1% |
trace run length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
<= 2 | 0 | 0.0% |
<= 4 | 6,248,040 | 3.5% |
<= 8 | 14,516,180 | 8.2% |
<= 16 | 35,026,900 | 19.8% |
<= 32 | 30,864,380 | 17.4% |
<= 64 | 75,012,940 | 42.4% |
<= 128 | 4,855,560 | 2.7% |
<= 256 | 5,665,060 | 3.2% |
<= 512 | 4,212,720 | 2.4% |
<= 1,024 | 447,920 | 0.3% |
uop execution stats
Name | Count | Self | Cumulative | Miss ratio |
---|---|---|---|---|
_LOAD_CONST_INLINE_BORROW | 1,243,018,040 | 15.8% | 15.8% | |
_LOAD_FAST | 649,824,520 | 8.3% | 24.1% | |
_LOAD_FAST_6 | 438,469,920 | 5.6% | 29.7% | |
_GUARD_NOS_INT | 416,029,820 | 5.3% | 35.0% | |
_SET_IP | 349,850,040 | 4.5% | 39.5% | |
_CHECK_VALIDITY | 349,850,040 | 4.5% | 43.9% | |
_LOAD_FAST_4 | 332,787,640 | 4.2% | 48.1% | |
_STORE_FAST | 322,953,040 | 4.1% | 52.3% | |
_GUARD_IS_TRUE_POP | 319,284,380 | 4.1% | 56.3% | 19.3% |
_BINARY_SUBSCR_LIST_INT | 316,060,660 | 4.0% | 60.4% | |
_BINARY_OP_ADD_INT | 297,841,500 | 3.8% | 64.1% | |
_COMPARE_OP_INT | 227,443,160 | 2.9% | 67.0% | |
_EXIT_TRACE | 176,849,700 | 2.3% | 69.3% | |
_START_EXECUTOR | 176,849,700 | 2.3% | 71.5% | |
_TIER2_RESUME_CHECK | 171,734,960 | 2.2% | 73.7% | |
_TO_BOOL_INT | 161,476,520 | 2.1% | 75.8% | |
_STORE_SLICE | 138,496,700 | 1.8% | 77.6% | |
_BUILD_SLICE | 138,496,700 | 1.8% | 79.3% | |
_BINARY_SUBSCR | 138,496,700 | 1.8% | 81.1% | |
_LOAD_FAST_1 | 120,605,080 | 1.5% | 82.6% | |
_PUSH_NULL | 99,753,640 | 1.3% | 83.9% | |
_COPY | 99,753,640 | 1.3% | 85.2% | |
_SWAP | 99,753,640 | 1.3% | 86.4% | |
_CALL_BUILTIN_FAST | 99,753,640 | 1.3% | 87.7% | |
_CHECK_PERIODIC | 99,753,640 | 1.3% | 89.0% | |
_JUMP_TO_TOP | 95,356,920 | 1.2% | 90.2% | |
_BINARY_OP_SUBTRACT_INT | 91,579,700 | 1.2% | 91.4% | |
_LOAD_FAST_5 | 77,810,320 | 1.0% | 92.3% | |
_GUARD_BOTH_INT | 77,338,700 | 1.0% | 93.3% | |
_STORE_SUBSCR_LIST_INT | 70,728,260 | 0.9% | 94.2% | |
_GUARD_IS_FALSE_POP | 69,633,960 | 0.9% | 95.1% | 42.1% |
_LOAD_FAST_3 | 51,605,320 | 0.7% | 95.8% | |
_POP_TOP | 49,876,820 | 0.6% | 96.4% | |
_CHECK_VALIDITY_AND_SET_IP | 49,876,820 | 0.6% | 97.0% | |
_LOAD_FAST_7 | 49,876,820 | 0.6% | 97.7% | |
_LOAD_FAST_0 | 49,873,320 | 0.6% | 98.3% | |
_STORE_FAST_4 | 41,699,540 | 0.5% | 98.8% | |
_LOAD_FAST_2 | 22,981,080 | 0.3% | 99.1% | |
_BINARY_SLICE | 22,979,820 | 0.3% | 99.4% | |
_STORE_FAST_6 | 22,979,820 | 0.3% | 99.7% | |
_GUARD_TOS_INT | 21,318,360 | 0.3% | 100.0% | |
_COLD_EXIT | 33,460 | 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 |
---|---|---|---|
_LOAD_CONST_INLINE_BORROW _GUARD_NOS_INT | 416,029,820 | 5.3% | 5.3% |
_LOAD_FAST _LOAD_CONST_INLINE_BORROW | 415,490,100 | 5.3% | 10.6% |
_LOAD_FAST_6 _LOAD_CONST_INLINE_BORROW | 299,973,220 | 3.8% | 14.4% |
_GUARD_NOS_INT _BINARY_OP_ADD_INT | 251,881,860 | 3.2% | 17.6% |
_LOAD_CONST_INLINE_BORROW _BINARY_SUBSCR_LIST_INT | 190,504,360 | 2.4% | 20.0% |
_BINARY_SUBSCR_LIST_INT _STORE_FAST | 161,476,520 | 2.1% | 22.1% |
_TO_BOOL_INT _GUARD_IS_TRUE_POP | 161,476,520 | 2.1% | 24.2% |
_LOAD_CONST_INLINE_BORROW _LOAD_CONST_INLINE_BORROW | 161,476,520 | 2.1% | 26.2% |
_LOAD_FAST _TO_BOOL_INT | 161,476,520 | 2.1% | 28.3% |
_STORE_FAST _LOAD_FAST | 161,476,520 | 2.1% | 30.3% |
_STORE_FAST _LOAD_FAST_6 | 161,476,520 | 2.1% | 32.4% |
_COMPARE_OP_INT _GUARD_IS_TRUE_POP | 156,397,720 | 2.0% | 34.4% |
_STORE_SLICE _CHECK_VALIDITY | 138,496,700 | 1.8% | 36.1% |
_BUILD_SLICE _SET_IP | 138,496,700 | 1.8% | 37.9% |
_SET_IP _STORE_SLICE | 138,496,700 | 1.8% | 39.7% |
_SET_IP _BINARY_SUBSCR | 138,496,700 | 1.8% | 41.4% |
_BINARY_OP_ADD_INT _SET_IP | 138,496,700 | 1.8% | 43.2% |
_BINARY_OP_ADD_INT _STORE_FAST | 138,496,700 | 1.8% | 45.0% |
_BINARY_SUBSCR _CHECK_VALIDITY | 138,496,700 | 1.8% | 46.7% |
_CHECK_VALIDITY _LOAD_FAST | 138,496,700 | 1.8% | 48.5% |
_CHECK_VALIDITY _LOAD_FAST_6 | 138,496,700 | 1.8% | 50.3% |
_LOAD_CONST_INLINE_BORROW _BUILD_SLICE | 138,496,700 | 1.8% | 52.0% |
_LOAD_CONST_INLINE_BORROW _LOAD_FAST | 138,496,700 | 1.8% | 53.8% |
_LOAD_FAST_6 _LOAD_FAST | 138,496,700 | 1.8% | 55.6% |
_GUARD_IS_TRUE_POP _EXIT_TRACE | 131,604,800 | 1.7% | 57.2% |
_BINARY_SUBSCR_LIST_INT _LOAD_CONST_INLINE_BORROW | 128,781,480 | 1.6% | 58.9% |
_LOAD_FAST_1 _LOAD_FAST_4 | 120,605,080 | 1.5% | 60.4% |
_TIER2_RESUME_CHECK _LOAD_FAST_6 | 115,516,880 | 1.5% | 61.9% |
_LOAD_FAST_4 _LOAD_CONST_INLINE_BORROW | 112,432,420 | 1.4% | 63.3% |
_GUARD_NOS_INT _COMPARE_OP_INT | 107,934,660 | 1.4% | 64.7% |
_CALL_BUILTIN_FAST _CHECK_PERIODIC | 99,753,640 | 1.3% | 66.0% |
_GUARD_IS_TRUE_POP _JUMP_TO_TOP | 95,356,920 | 1.2% | 67.2% |
_JUMP_TO_TOP _TIER2_RESUME_CHECK | 95,356,920 | 1.2% | 68.4% |
_GUARD_BOTH_INT _COMPARE_OP_INT | 77,338,700 | 1.0% | 69.4% |
_START_EXECUTOR _TIER2_RESUME_CHECK | 76,378,040 | 1.0% | 70.3% |
_LOAD_CONST_INLINE_BORROW _SET_IP | 72,856,640 | 0.9% | 71.3% |
_GUARD_NOS_INT _BINARY_OP_SUBTRACT_INT | 56,213,300 | 0.7% | 72.0% |
_COMPARE_OP_INT _GUARD_IS_FALSE_POP | 55,120,220 | 0.7% | 72.7% |
_LOAD_FAST_5 _LOAD_CONST_INLINE_BORROW | 52,007,660 | 0.7% | 73.3% |
_POP_TOP _LOAD_FAST_1 | 49,876,820 | 0.6% | 74.0% |
_PUSH_NULL _LOAD_CONST_INLINE_BORROW | 49,876,820 | 0.6% | 74.6% |
_PUSH_NULL _LOAD_FAST_4 | 49,876,820 | 0.6% | 75.3% |
_COPY _COPY | 49,876,820 | 0.6% | 75.9% |
_COPY _BINARY_SUBSCR_LIST_INT | 49,876,820 | 0.6% | 76.5% |
_SWAP _SWAP | 49,876,820 | 0.6% | 77.2% |
_SWAP _STORE_SUBSCR_LIST_INT | 49,876,820 | 0.6% | 77.8% |
_STORE_SUBSCR_LIST_INT _LOAD_FAST_1 | 49,876,820 | 0.6% | 78.4% |
_SET_IP _CALL_BUILTIN_FAST | 49,876,820 | 0.6% | 79.1% |
_BINARY_OP_SUBTRACT_INT _SWAP | 49,876,820 | 0.6% | 79.7% |
_CHECK_PERIODIC _CHECK_VALIDITY | 49,876,820 | 0.6% | 80.3% |
_CHECK_PERIODIC _CHECK_VALIDITY_AND_SET_IP | 49,876,820 | 0.6% | 81.0% |
_CHECK_VALIDITY _POP_TOP | 49,876,820 | 0.6% | 81.6% |
_CHECK_VALIDITY_AND_SET_IP _CALL_BUILTIN_FAST | 49,876,820 | 0.6% | 82.2% |
_LOAD_FAST _PUSH_NULL | 49,876,820 | 0.6% | 82.9% |
_LOAD_FAST_4 _COPY | 49,876,820 | 0.6% | 83.5% |
_LOAD_FAST_4 _BINARY_SUBSCR_LIST_INT | 49,876,820 | 0.6% | 84.1% |
_LOAD_FAST_4 _LOAD_FAST | 49,876,820 | 0.6% | 84.8% |
_LOAD_FAST_7 _PUSH_NULL | 49,876,820 | 0.6% | 85.4% |
_LOAD_FAST_4 _LOAD_FAST_0 | 49,873,320 | 0.6% | 86.1% |
_LOAD_CONST_INLINE_BORROW _BINARY_OP_ADD_INT | 45,959,640 | 0.6% | 86.6% |
_STORE_FAST_4 _LOAD_FAST_4 | 41,699,540 | 0.5% | 87.2% |
_START_EXECUTOR _LOAD_FAST_5 | 37,493,580 | 0.5% | 87.6% |
_TIER2_RESUME_CHECK _LOAD_FAST_4 | 35,366,480 | 0.5% | 88.1% |
_LOAD_CONST_INLINE_BORROW _BINARY_OP_SUBTRACT_INT | 35,366,400 | 0.5% | 88.5% |
_GUARD_IS_FALSE_POP _EXIT_TRACE | 29,319,680 | 0.4% | 88.9% |
_GUARD_IS_TRUE_POP _LOAD_FAST_7 | 29,025,220 | 0.4% | 89.3% |
_LOAD_FAST_0 _GUARD_BOTH_INT | 28,554,960 | 0.4% | 89.7% |
_BINARY_SUBSCR_LIST_INT _LOAD_FAST_3 | 25,802,660 | 0.3% | 90.0% |
_GUARD_IS_TRUE_POP _LOAD_FAST_5 | 25,802,660 | 0.3% | 90.3% |
_LOAD_FAST_3 _BINARY_SUBSCR_LIST_INT | 25,802,660 | 0.3% | 90.6% |
_LOAD_FAST_3 _GUARD_BOTH_INT | 25,802,660 | 0.3% | 91.0% |
_LOAD_FAST_5 _LOAD_FAST_3 | 25,802,660 | 0.3% | 91.3% |
_GUARD_IS_FALSE_POP _LOAD_FAST_4 | 25,800,200 | 0.3% | 91.6% |
_START_EXECUTOR _LOAD_FAST_4 | 24,073,120 | 0.3% | 91.9% |
_LOAD_FAST _LOAD_FAST_2 | 22,981,080 | 0.3% | 92.2% |
_LOAD_FAST_2 _GUARD_BOTH_INT | 22,981,080 | 0.3% | 92.5% |
_START_EXECUTOR _LOAD_FAST | 22,981,080 | 0.3% | 92.8% |
_BINARY_SLICE _CHECK_VALIDITY | 22,979,820 | 0.3% | 93.1% |
_SET_IP _BINARY_SLICE | 22,979,820 | 0.3% | 93.4% |
_CHECK_VALIDITY _STORE_FAST_6 | 22,979,820 | 0.3% | 93.7% |
_GUARD_IS_TRUE_POP _LOAD_FAST_6 | 22,979,820 | 0.3% | 94.0% |
_LOAD_CONST_INLINE_BORROW _STORE_FAST | 22,979,820 | 0.3% | 94.3% |
_STORE_FAST_6 _LOAD_CONST_INLINE_BORROW | 22,979,820 | 0.3% | 94.6% |
_GUARD_TOS_INT _COMPARE_OP_INT | 21,318,360 | 0.3% | 94.8% |
_LOAD_FAST_0 _GUARD_TOS_INT | 21,318,360 | 0.3% | 95.1% |
_TIER2_RESUME_CHECK _LOAD_FAST_7 | 20,851,600 | 0.3% | 95.4% |
_STORE_SUBSCR_LIST_INT _LOAD_FAST_4 | 20,851,440 | 0.3% | 95.6% |
_BINARY_OP_SUBTRACT_INT _STORE_SUBSCR_LIST_INT | 20,851,440 | 0.3% | 95.9% |
_BINARY_OP_SUBTRACT_INT _STORE_FAST_4 | 20,851,440 | 0.3% | 96.2% |
_LOAD_CONST_INLINE_BORROW _COMPARE_OP_INT | 20,851,440 | 0.3% | 96.4% |
_LOAD_FAST_4 _LOAD_FAST_1 | 20,851,440 | 0.3% | 96.7% |
_BINARY_OP_ADD_INT _STORE_FAST_4 | 20,848,100 | 0.3% | 97.0% |
_COMPARE_OP_INT _EXIT_TRACE | 15,925,220 | 0.2% | 97.2% |
_GUARD_IS_TRUE_POP _LOAD_FAST_4 | 14,514,960 | 0.2% | 97.4% |
_GUARD_IS_FALSE_POP _LOAD_FAST_5 | 14,514,080 | 0.2% | 97.5% |
_START_EXECUTOR _GUARD_IS_FALSE_POP | 14,513,740 | 0.2% | 97.7% |
_START_EXECUTOR _GUARD_IS_TRUE_POP | 1,410,140 | 0.0% | 97.7% |
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