- benchmark: float
- 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 | 80,032,460 | 21.7% | 21.7% | |
STORE_ATTR_SLOT | 48,007,940 | 13.0% | 34.8% | |
BINARY_OP | 32,010,300 | 8.7% | 43.5% | |
LOAD_GLOBAL_MODULE | 32,001,140 | 8.7% | 52.2% | |
LOAD_CONST | 32,000,720 | 8.7% | 60.9% | |
CALL_BUILTIN_O | 32,000,420 | 8.7% | 69.5% | |
STORE_FAST | 16,029,420 | 4.4% | 73.9% | |
LOAD_FAST_LOAD_FAST | 16,001,920 | 4.3% | 78.2% | |
COPY | 16,001,440 | 4.3% | 82.6% | |
BINARY_OP_MULTIPLY_FLOAT | 16,001,360 | 4.3% | 86.9% | |
RESUME_CHECK | 16,001,240 | 4.3% | 91.3% | 0.0% |
RETURN_CONST | 16,000,480 | 4.3% | 95.6% | |
INTERPRETER_EXIT | 16,000,160 | 4.3% | 100.0% | |
RETURN_VALUE | 25,580 | 0.0% | 100.0% | |
ENTER_EXECUTOR | 25,260 | 0.0% | 100.0% | |
LOAD_ATTR_SLOT | 16,680 | 0.0% | 100.0% | |
POP_JUMP_IF_FALSE | 3,800 | 0.0% | 100.0% | |
COMPARE_OP_FLOAT | 3,660 | 0.0% | 100.0% | |
JUMP_FORWARD | 1,880 | 0.0% | 100.0% | |
SWAP | 1,440 | 0.0% | 100.0% | |
POP_TOP | 1,200 | 0.0% | 100.0% | |
JUMP_BACKWARD | 1,180 | 0.0% | 100.0% | |
CALL_PY_EXACT_ARGS | 1,060 | 0.0% | 100.0% | |
BINARY_OP_ADD_FLOAT | 920 | 0.0% | 100.0% | |
FOR_ITER_LIST | 920 | 0.0% | 100.0% | |
LOAD_ATTR_METHOD_NO_DICT | 920 | 0.0% | 100.0% | |
LOAD_ATTR | 840 | 0.0% | 100.0% | |
CALL_NON_PY_GENERAL | 780 | 0.0% | 100.0% | |
FOR_ITER_RANGE | 680 | 0.0% | 100.0% | |
GET_ITER | 560 | 0.0% | 100.0% | |
CALL | 520 | 0.0% | 100.0% | |
PUSH_NULL | 480 | 0.0% | 100.0% | |
STORE_SUBSCR_LIST_INT | 460 | 0.0% | 100.0% | |
STORE_ATTR | 400 | 0.0% | 100.0% | |
LOAD_GLOBAL | 360 | 0.0% | 100.0% | |
CALL_BUILTIN_CLASS | 200 | 0.0% | 100.0% | |
LOAD_GLOBAL_BUILTIN | 200 | 0.0% | 100.0% | |
BINARY_SLICE | 160 | 0.0% | 100.0% | |
BUILD_LIST | 160 | 0.0% | 100.0% | |
COMPARE_OP | 160 | 0.0% | 100.0% | |
FOR_ITER | 160 | 0.0% | 100.0% | |
LOAD_DEREF | 160 | 0.0% | 100.0% | |
BINARY_SUBSCR_LIST_INT | 140 | 0.0% | 100.0% | |
RESUME | 120 | 0.0% | 100.0% | 6,550.0% |
LOAD_ATTR_MODULE | 120 | 0.0% | 100.0% | |
NOP | 80 | 0.0% | 100.0% | |
CALL_FUNCTION_EX | 80 | 0.0% | 100.0% | |
COPY_FREE_VARS | 80 | 0.0% | 100.0% | |
BINARY_OP_SUBTRACT_FLOAT | 60 | 0.0% | 100.0% | |
COMPARE_OP_INT | 60 | 0.0% | 100.0% | |
BINARY_SUBSCR | 40 | 0.0% | 100.0% | |
STORE_SUBSCR | 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 STORE_ATTR_SLOT | 48,006,420 | 13.0% | 13.0% |
LOAD_GLOBAL_MODULE LOAD_FAST | 32,000,560 | 8.7% | 21.7% |
BINARY_OP LOAD_FAST | 32,000,000 | 8.7% | 30.4% |
LOAD_CONST BINARY_OP | 32,000,000 | 8.7% | 39.1% |
LOAD_FAST CALL_BUILTIN_O | 31,999,920 | 8.7% | 47.8% |
LOAD_FAST_LOAD_FAST BINARY_OP_MULTIPLY_FLOAT | 16,001,280 | 4.3% | 52.2% |
STORE_FAST LOAD_GLOBAL_MODULE | 16,000,840 | 4.3% | 56.5% |
STORE_ATTR_SLOT RETURN_CONST | 16,000,440 | 4.3% | 60.8% |
CACHE RESUME_CHECK | 16,000,120 | 4.3% | 65.2% |
COPY LOAD_FAST | 16,000,000 | 4.3% | 69.5% |
RETURN_CONST INTERPRETER_EXIT | 16,000,000 | 4.3% | 73.9% |
RESUME_CHECK LOAD_GLOBAL_MODULE | 16,000,000 | 4.3% | 78.2% |
BINARY_OP_MULTIPLY_FLOAT LOAD_CONST | 15,999,980 | 4.3% | 82.6% |
CALL_BUILTIN_O COPY | 15,999,980 | 4.3% | 86.9% |
CALL_BUILTIN_O LOAD_CONST | 15,999,980 | 4.3% | 91.3% |
STORE_ATTR_SLOT LOAD_FAST_LOAD_FAST | 15,999,980 | 4.3% | 95.6% |
STORE_ATTR_SLOT STORE_FAST | 15,999,980 | 4.3% | 100.0% |
RETURN_VALUE STORE_FAST | 25,180 | 0.0% | 100.0% |
STORE_FAST ENTER_EXECUTOR | 24,840 | 0.0% | 100.0% |
ENTER_EXECUTOR RETURN_VALUE | 21,720 | 0.0% | 100.0% |
LOAD_FAST LOAD_ATTR_SLOT | 15,020 | 0.0% | 100.0% |
LOAD_ATTR_SLOT LOAD_FAST | 9,800 | 0.0% | 100.0% |
BINARY_OP BINARY_OP | 8,460 | 0.0% | 100.0% |
STORE_ATTR_SLOT LOAD_FAST | 7,540 | 0.0% | 100.0% |
LOAD_FAST RETURN_VALUE | 3,700 | 0.0% | 100.0% |
COMPARE_OP_FLOAT POP_JUMP_IF_FALSE | 3,660 | 0.0% | 100.0% |
LOAD_ATTR_SLOT COMPARE_OP_FLOAT | 3,600 | 0.0% | 100.0% |
POP_JUMP_IF_FALSE LOAD_FAST | 3,580 | 0.0% | 100.0% |
ENTER_EXECUTOR LOAD_FAST | 3,100 | 0.0% | 100.0% |
STORE_FAST LOAD_FAST | 3,040 | 0.0% | 100.0% |
JUMP_FORWARD LOAD_FAST | 1,880 | 0.0% | 100.0% |
LOAD_ATTR_SLOT JUMP_FORWARD | 1,840 | 0.0% | 100.0% |
LOAD_FAST BINARY_OP | 1,640 | 0.0% | 100.0% |
BINARY_OP SWAP | 1,440 | 0.0% | 100.0% |
LOAD_FAST COPY | 1,440 | 0.0% | 100.0% |
LOAD_ATTR_SLOT STORE_FAST | 1,380 | 0.0% | 100.0% |
COPY LOAD_ATTR_SLOT | 1,320 | 0.0% | 100.0% |
SWAP STORE_ATTR_SLOT | 1,320 | 0.0% | 100.0% |
CALL_PY_EXACT_ARGS RESUME_CHECK | 1,060 | 0.0% | 100.0% |
RESUME_CHECK LOAD_FAST | 1,060 | 0.0% | 100.0% |
FOR_ITER_LIST STORE_FAST | 920 | 0.0% | 100.0% |
LOAD_FAST LOAD_ATTR_METHOD_NO_DICT | 880 | 0.0% | 100.0% |
BINARY_OP_MULTIPLY_FLOAT BINARY_OP_ADD_FLOAT | 880 | 0.0% | 100.0% |
LOAD_FAST LOAD_ATTR | 640 | 0.0% | 100.0% |
JUMP_BACKWARD FOR_ITER_LIST | 600 | 0.0% | 100.0% |
FOR_ITER_RANGE STORE_FAST | 600 | 0.0% | 100.0% |
LOAD_FAST CALL_PY_EXACT_ARGS | 560 | 0.0% | 100.0% |
POP_TOP JUMP_BACKWARD | 500 | 0.0% | 100.0% |
RETURN_CONST POP_TOP | 480 | 0.0% | 100.0% |
BINARY_OP_ADD_FLOAT LOAD_FAST_LOAD_FAST | 460 | 0.0% | 100.0% |
BINARY_OP_MULTIPLY_FLOAT LOAD_FAST_LOAD_FAST | 460 | 0.0% | 100.0% |
CALL_BUILTIN_O STORE_FAST | 460 | 0.0% | 100.0% |
CALL_NON_PY_GENERAL LOAD_FAST_LOAD_FAST | 460 | 0.0% | 100.0% |
LOAD_ATTR_METHOD_NO_DICT LOAD_FAST | 460 | 0.0% | 100.0% |
LOAD_GLOBAL_MODULE LOAD_FAST_LOAD_FAST | 460 | 0.0% | 100.0% |
ENTER_EXECUTOR POP_TOP | 440 | 0.0% | 100.0% |
JUMP_BACKWARD FOR_ITER_RANGE | 440 | 0.0% | 100.0% |
LOAD_FAST CALL_NON_PY_GENERAL | 440 | 0.0% | 100.0% |
LOAD_FAST_LOAD_FAST STORE_SUBSCR_LIST_INT | 440 | 0.0% | 100.0% |
BINARY_OP_ADD_FLOAT CALL_BUILTIN_O | 440 | 0.0% | 100.0% |
LOAD_ATTR_METHOD_NO_DICT CALL_PY_EXACT_ARGS | 440 | 0.0% | 100.0% |
LOAD_FAST LOAD_CONST | 400 | 0.0% | 100.0% |
LOAD_ATTR LOAD_ATTR_SLOT | 340 | 0.0% | 100.0% |
STORE_FAST JUMP_BACKWARD | 340 | 0.0% | 100.0% |
POP_TOP LOAD_FAST | 320 | 0.0% | 100.0% |
LOAD_FAST PUSH_NULL | 320 | 0.0% | 100.0% |
STORE_SUBSCR_LIST_INT JUMP_BACKWARD | 320 | 0.0% | 100.0% |
GET_ITER FOR_ITER_LIST | 280 | 0.0% | 100.0% |
LOAD_FAST CALL | 280 | 0.0% | 100.0% |
LOAD_FAST STORE_ATTR | 280 | 0.0% | 100.0% |
PUSH_NULL CALL_NON_PY_GENERAL | 240 | 0.0% | 100.0% |
LOAD_FAST GET_ITER | 240 | 0.0% | 100.0% |
GET_ITER FOR_ITER_RANGE | 200 | 0.0% | 100.0% |
LOAD_ATTR LOAD_FAST | 200 | 0.0% | 100.0% |
STORE_ATTR STORE_ATTR_SLOT | 200 | 0.0% | 100.0% |
CALL_NON_PY_GENERAL POP_TOP | 200 | 0.0% | 100.0% |
LOAD_GLOBAL_BUILTIN LOAD_FAST | 200 | 0.0% | 100.0% |
BINARY_OP STORE_FAST | 180 | 0.0% | 100.0% |
BINARY_SLICE GET_ITER | 160 | 0.0% | 100.0% |
PUSH_NULL CALL | 160 | 0.0% | 100.0% |
RETURN_VALUE INTERPRETER_EXIT | 160 | 0.0% | 100.0% |
RETURN_VALUE RETURN_VALUE | 160 | 0.0% | 100.0% |
BUILD_LIST LOAD_FAST | 160 | 0.0% | 100.0% |
LOAD_CONST BINARY_SLICE | 160 | 0.0% | 100.0% |
LOAD_CONST BUILD_LIST | 160 | 0.0% | 100.0% |
LOAD_CONST LOAD_CONST | 160 | 0.0% | 100.0% |
LOAD_FAST CALL_BUILTIN_CLASS | 160 | 0.0% | 100.0% |
LOAD_FAST_LOAD_FAST BINARY_OP | 160 | 0.0% | 100.0% |
STORE_FAST LOAD_GLOBAL | 160 | 0.0% | 100.0% |
POP_TOP ENTER_EXECUTOR | 140 | 0.0% | 100.0% |
LOAD_GLOBAL LOAD_GLOBAL_MODULE | 140 | 0.0% | 100.0% |
POP_JUMP_IF_FALSE ENTER_EXECUTOR | 140 | 0.0% | 100.0% |
BINARY_SUBSCR_LIST_INT STORE_FAST | 140 | 0.0% | 100.0% |
CALL_BUILTIN_CLASS GET_ITER | 140 | 0.0% | 100.0% |
RESUME_CHECK LOAD_CONST | 140 | 0.0% | 100.0% |
STORE_SUBSCR_LIST_INT ENTER_EXECUTOR | 140 | 0.0% | 100.0% |
POP_TOP LOAD_GLOBAL_MODULE | 120 | 0.0% | 100.0% |
COPY LOAD_ATTR | 120 | 0.0% | 100.0% |
LOAD_CONST BINARY_SUBSCR_LIST_INT | 120 | 0.0% | 100.0% |
LOAD_GLOBAL LOAD_FAST | 120 | 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 | 160 | 100.0% |
Successors | Count | Percentage |
---|---|---|
GET_ITER | 160 | 100.0% |
Successors and predecessors for CACHE
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 16,000,120 | 100.0% |
RESUME | 40 | 0.0% |
Successors and predecessors for BINARY_SUBSCR
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 40 | 100.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 20 | 50.0% |
BINARY_SUBSCR_LIST_INT | 20 | 50.0% |
Successors and predecessors for GET_ITER
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 240 | 42.9% |
BINARY_SLICE | 160 | 28.6% |
CALL_BUILTIN_CLASS | 140 | 25.0% |
CALL | 20 | 3.6% |
Successors | Count | Percentage |
---|---|---|
FOR_ITER_LIST | 280 | 50.0% |
FOR_ITER_RANGE | 200 | 35.7% |
FOR_ITER | 80 | 14.3% |
Successors and predecessors for INTERPRETER_EXIT
Predecessors | Count | Percentage |
---|---|---|
RETURN_CONST | 16,000,000 | 100.0% |
RETURN_VALUE | 160 | 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 |
---|---|---|
RETURN_CONST | 480 | 40.0% |
ENTER_EXECUTOR | 440 | 36.7% |
CALL_NON_PY_GENERAL | 200 | 16.7% |
CALL | 40 | 3.3% |
JUMP_BACKWARD | 40 | 3.3% |
Successors | Count | Percentage |
---|---|---|
JUMP_BACKWARD | 500 | 41.7% |
LOAD_FAST | 320 | 26.7% |
ENTER_EXECUTOR | 140 | 11.7% |
LOAD_GLOBAL_MODULE | 120 | 10.0% |
NOP | 80 | 6.7% |
Successors and predecessors for PUSH_NULL
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 320 | 66.7% |
LOAD_DEREF | 80 | 16.7% |
LOAD_ATTR_MODULE | 60 | 12.5% |
LOAD_ATTR | 20 | 4.2% |
Successors | Count | Percentage |
---|---|---|
CALL_NON_PY_GENERAL | 240 | 50.0% |
CALL | 160 | 33.3% |
LOAD_FAST | 80 | 16.7% |
Successors and predecessors for RETURN_VALUE
Predecessors | Count | Percentage |
---|---|---|
ENTER_EXECUTOR | 21,720 | 84.9% |
LOAD_FAST | 3,700 | 14.5% |
RETURN_VALUE | 160 | 0.6% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 25,180 | 98.4% |
INTERPRETER_EXIT | 160 | 0.6% |
RETURN_VALUE | 160 | 0.6% |
LOAD_GLOBAL | 40 | 0.2% |
LOAD_GLOBAL_MODULE | 40 | 0.2% |
Successors and predecessors for STORE_SUBSCR
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 40 | 100.0% |
Successors | Count | Percentage |
---|---|---|
JUMP_BACKWARD | 20 | 50.0% |
STORE_SUBSCR_LIST_INT | 20 | 50.0% |
Successors and predecessors for BINARY_OP
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 32,000,000 | 100.0% |
BINARY_OP | 8,460 | 0.0% |
LOAD_FAST | 1,640 | 0.0% |
LOAD_FAST_LOAD_FAST | 160 | 0.0% |
BINARY_OP_MULTIPLY_FLOAT | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 32,000,000 | 100.0% |
BINARY_OP | 8,460 | 0.0% |
SWAP | 1,440 | 0.0% |
STORE_FAST | 180 | 0.0% |
BINARY_OP_MULTIPLY_FLOAT | 80 | 0.0% |
Successors and predecessors for BUILD_LIST
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 160 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 160 | 100.0% |
Successors and predecessors for CALL
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 280 | 53.8% |
PUSH_NULL | 160 | 30.8% |
BINARY_OP | 20 | 3.8% |
LOAD_ATTR | 20 | 3.8% |
BINARY_OP_ADD_FLOAT | 20 | 3.8% |
Successors | Count | Percentage |
---|---|---|
CALL_NON_PY_GENERAL | 100 | 19.2% |
STORE_FAST | 60 | 11.5% |
RESUME | 60 | 11.5% |
CALL_BUILTIN_O | 60 | 11.5% |
CALL_PY_EXACT_ARGS | 60 | 11.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_ATTR | 60 | 37.5% |
LOAD_ATTR_SLOT | 60 | 37.5% |
LOAD_CONST | 40 | 25.0% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 80 | 50.0% |
COMPARE_OP_FLOAT | 60 | 37.5% |
COMPARE_OP_INT | 20 | 12.5% |
Successors and predecessors for COPY
Predecessors | Count | Percentage |
---|---|---|
CALL_BUILTIN_O | 15,999,980 | 100.0% |
LOAD_FAST | 1,440 | 0.0% |
CALL | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 16,000,000 | 100.0% |
LOAD_ATTR_SLOT | 1,320 | 0.0% |
LOAD_ATTR | 120 | 0.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 ENTER_EXECUTOR
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 24,840 | 98.3% |
POP_TOP | 140 | 0.6% |
POP_JUMP_IF_FALSE | 140 | 0.6% |
STORE_SUBSCR_LIST_INT | 140 | 0.6% |
Successors | Count | Percentage |
---|---|---|
RETURN_VALUE | 21,720 | 86.0% |
LOAD_FAST | 3,100 | 12.3% |
POP_TOP | 440 | 1.7% |
Successors and predecessors for FOR_ITER
Predecessors | Count | Percentage |
---|---|---|
GET_ITER | 80 | 50.0% |
JUMP_BACKWARD | 80 | 50.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 80 | 50.0% |
FOR_ITER_LIST | 40 | 25.0% |
FOR_ITER_RANGE | 40 | 25.0% |
Successors and predecessors for JUMP_BACKWARD
Predecessors | Count | Percentage |
---|---|---|
POP_TOP | 500 | 42.4% |
STORE_FAST | 340 | 28.8% |
STORE_SUBSCR_LIST_INT | 320 | 27.1% |
STORE_SUBSCR | 20 | 1.7% |
Successors | Count | Percentage |
---|---|---|
FOR_ITER_LIST | 600 | 50.8% |
FOR_ITER_RANGE | 440 | 37.3% |
FOR_ITER | 80 | 6.8% |
POP_TOP | 40 | 3.4% |
LOAD_FAST | 20 | 1.7% |
Successors and predecessors for JUMP_FORWARD
Predecessors | Count | Percentage |
---|---|---|
LOAD_ATTR_SLOT | 1,840 | 97.9% |
LOAD_ATTR | 40 | 2.1% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 1,880 | 100.0% |
Successors and predecessors for LOAD_ATTR
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 640 | 76.2% |
COPY | 120 | 14.3% |
LOAD_GLOBAL | 40 | 4.8% |
LOAD_GLOBAL_MODULE | 40 | 4.8% |
Successors | Count | Percentage |
---|---|---|
LOAD_ATTR_SLOT | 340 | 40.5% |
LOAD_FAST | 200 | 23.8% |
STORE_FAST | 80 | 9.5% |
COMPARE_OP | 60 | 7.1% |
JUMP_FORWARD | 40 | 4.8% |
Successors and predecessors for LOAD_CONST
Predecessors | Count | Percentage |
---|---|---|
BINARY_OP_MULTIPLY_FLOAT | 15,999,980 | 50.0% |
CALL_BUILTIN_O | 15,999,980 | 50.0% |
LOAD_FAST | 400 | 0.0% |
LOAD_CONST | 160 | 0.0% |
RESUME_CHECK | 140 | 0.0% |
Successors | Count | Percentage |
---|---|---|
BINARY_OP | 32,000,000 | 100.0% |
BINARY_SLICE | 160 | 0.0% |
BUILD_LIST | 160 | 0.0% |
LOAD_CONST | 160 | 0.0% |
BINARY_SUBSCR_LIST_INT | 120 | 0.0% |
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 |
---|---|---|
LOAD_GLOBAL_MODULE | 32,000,560 | 40.0% |
BINARY_OP | 32,000,000 | 40.0% |
COPY | 16,000,000 | 20.0% |
LOAD_ATTR_SLOT | 9,800 | 0.0% |
STORE_ATTR_SLOT | 7,540 | 0.0% |
Successors | Count | Percentage |
---|---|---|
STORE_ATTR_SLOT | 48,006,420 | 60.0% |
CALL_BUILTIN_O | 31,999,920 | 40.0% |
LOAD_ATTR_SLOT | 15,020 | 0.0% |
RETURN_VALUE | 3,700 | 0.0% |
BINARY_OP | 1,640 | 0.0% |
Successors and predecessors for LOAD_FAST_LOAD_FAST
Predecessors | Count | Percentage |
---|---|---|
STORE_ATTR_SLOT | 15,999,980 | 100.0% |
BINARY_OP_ADD_FLOAT | 460 | 0.0% |
BINARY_OP_MULTIPLY_FLOAT | 460 | 0.0% |
CALL_NON_PY_GENERAL | 460 | 0.0% |
LOAD_GLOBAL_MODULE | 460 | 0.0% |
Successors | Count | Percentage |
---|---|---|
BINARY_OP_MULTIPLY_FLOAT | 16,001,280 | 100.0% |
STORE_SUBSCR_LIST_INT | 440 | 0.0% |
BINARY_OP | 160 | 0.0% |
STORE_SUBSCR | 40 | 0.0% |
Successors and predecessors for LOAD_GLOBAL
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 160 | 44.4% |
POP_TOP | 40 | 11.1% |
RETURN_VALUE | 40 | 11.1% |
POP_JUMP_IF_FALSE | 40 | 11.1% |
RESUME | 40 | 11.1% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 140 | 38.9% |
LOAD_FAST | 120 | 33.3% |
LOAD_ATTR | 40 | 11.1% |
LOAD_GLOBAL_BUILTIN | 40 | 11.1% |
LOAD_FAST_LOAD_FAST | 20 | 5.6% |
Successors and predecessors for POP_JUMP_IF_FALSE
Predecessors | Count | Percentage |
---|---|---|
COMPARE_OP_FLOAT | 3,660 | 96.3% |
COMPARE_OP | 80 | 2.1% |
COMPARE_OP_INT | 60 | 1.6% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 3,580 | 94.2% |
ENTER_EXECUTOR | 140 | 3.7% |
LOAD_GLOBAL | 40 | 1.1% |
LOAD_GLOBAL_BUILTIN | 40 | 1.1% |
Successors and predecessors for RETURN_CONST
Predecessors | Count | Percentage |
---|---|---|
STORE_ATTR_SLOT | 16,000,440 | 100.0% |
STORE_ATTR | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
INTERPRETER_EXIT | 16,000,000 | 100.0% |
POP_TOP | 480 | 0.0% |
Successors and predecessors for STORE_ATTR
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 280 | 70.0% |
SWAP | 120 | 30.0% |
Successors | Count | Percentage |
---|---|---|
STORE_ATTR_SLOT | 200 | 50.0% |
LOAD_FAST | 120 | 30.0% |
RETURN_CONST | 40 | 10.0% |
LOAD_FAST_LOAD_FAST | 20 | 5.0% |
STORE_FAST | 20 | 5.0% |
Successors and predecessors for STORE_FAST
Predecessors | Count | Percentage |
---|---|---|
STORE_ATTR_SLOT | 15,999,980 | 99.8% |
RETURN_VALUE | 25,180 | 0.2% |
LOAD_ATTR_SLOT | 1,380 | 0.0% |
FOR_ITER_LIST | 920 | 0.0% |
FOR_ITER_RANGE | 600 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 16,000,840 | 99.8% |
ENTER_EXECUTOR | 24,840 | 0.2% |
LOAD_FAST | 3,040 | 0.0% |
JUMP_BACKWARD | 340 | 0.0% |
LOAD_GLOBAL | 160 | 0.0% |
Successors and predecessors for SWAP
Predecessors | Count | Percentage |
---|---|---|
BINARY_OP | 1,440 | 100.0% |
Successors | Count | Percentage |
---|---|---|
STORE_ATTR_SLOT | 1,320 | 91.7% |
STORE_ATTR | 120 | 8.3% |
Successors and predecessors for RESUME
Predecessors | Count | Percentage |
---|---|---|
CALL | 60 | 50.0% |
CACHE | 40 | 33.3% |
COPY_FREE_VARS | 20 | 16.7% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 60 | 50.0% |
LOAD_GLOBAL | 40 | 33.3% |
LOAD_CONST | 20 | 16.7% |
Successors and predecessors for BINARY_OP_ADD_FLOAT
Predecessors | Count | Percentage |
---|---|---|
BINARY_OP_MULTIPLY_FLOAT | 880 | 95.7% |
BINARY_OP | 40 | 4.3% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 460 | 50.0% |
CALL_BUILTIN_O | 440 | 47.8% |
CALL | 20 | 2.2% |
Successors and predecessors for BINARY_OP_MULTIPLY_FLOAT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 16,001,280 | 100.0% |
BINARY_OP | 80 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST | 15,999,980 | 100.0% |
BINARY_OP_ADD_FLOAT | 880 | 0.0% |
LOAD_FAST_LOAD_FAST | 460 | 0.0% |
BINARY_OP | 40 | 0.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 |
---|---|---|
STORE_FAST | 60 | 100.0% |
Successors and predecessors for BINARY_SUBSCR_LIST_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 120 | 85.7% |
BINARY_SUBSCR | 20 | 14.3% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 140 | 100.0% |
Successors and predecessors for CALL_BUILTIN_CLASS
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 160 | 80.0% |
CALL | 40 | 20.0% |
Successors | Count | Percentage |
---|---|---|
GET_ITER | 140 | 70.0% |
STORE_FAST | 60 | 30.0% |
Successors and predecessors for CALL_BUILTIN_O
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 31,999,920 | 100.0% |
BINARY_OP_ADD_FLOAT | 440 | 0.0% |
CALL | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
COPY | 15,999,980 | 50.0% |
LOAD_CONST | 15,999,980 | 50.0% |
STORE_FAST | 460 | 0.0% |
Successors and predecessors for CALL_NON_PY_GENERAL
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 440 | 56.4% |
PUSH_NULL | 240 | 30.8% |
CALL | 100 | 12.8% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 460 | 59.0% |
POP_TOP | 200 | 25.6% |
LOAD_FAST | 60 | 7.7% |
STORE_FAST | 60 | 7.7% |
Successors and predecessors for CALL_PY_EXACT_ARGS
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 560 | 52.8% |
LOAD_ATTR_METHOD_NO_DICT | 440 | 41.5% |
CALL | 60 | 5.7% |
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 1,060 | 100.0% |
Successors and predecessors for COMPARE_OP_FLOAT
Predecessors | Count | Percentage |
---|---|---|
LOAD_ATTR_SLOT | 3,600 | 98.4% |
COMPARE_OP | 60 | 1.6% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 3,660 | 100.0% |
Successors and predecessors for COMPARE_OP_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 40 | 66.7% |
COMPARE_OP | 20 | 33.3% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 60 | 100.0% |
Successors and predecessors for FOR_ITER_LIST
Predecessors | Count | Percentage |
---|---|---|
JUMP_BACKWARD | 600 | 65.2% |
GET_ITER | 280 | 30.4% |
FOR_ITER | 40 | 4.3% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 920 | 100.0% |
Successors and predecessors for FOR_ITER_RANGE
Predecessors | Count | Percentage |
---|---|---|
JUMP_BACKWARD | 440 | 64.7% |
GET_ITER | 200 | 29.4% |
FOR_ITER | 40 | 5.9% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 600 | 88.2% |
LOAD_FAST | 80 | 11.8% |
Successors and predecessors for LOAD_ATTR_METHOD_NO_DICT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 880 | 95.7% |
LOAD_ATTR | 40 | 4.3% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 460 | 50.0% |
CALL_PY_EXACT_ARGS | 440 | 47.8% |
CALL | 20 | 2.2% |
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_ATTR_SLOT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 15,020 | 90.0% |
COPY | 1,320 | 7.9% |
LOAD_ATTR | 340 | 2.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 9,800 | 58.8% |
COMPARE_OP_FLOAT | 3,600 | 21.6% |
JUMP_FORWARD | 1,840 | 11.0% |
STORE_FAST | 1,380 | 8.3% |
COMPARE_OP | 60 | 0.4% |
Successors and predecessors for LOAD_GLOBAL_BUILTIN
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 120 | 60.0% |
LOAD_GLOBAL | 40 | 20.0% |
POP_JUMP_IF_FALSE | 40 | 20.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 200 | 100.0% |
Successors and predecessors for LOAD_GLOBAL_MODULE
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 16,000,840 | 50.0% |
RESUME_CHECK | 16,000,000 | 50.0% |
LOAD_GLOBAL | 140 | 0.0% |
POP_TOP | 120 | 0.0% |
RETURN_VALUE | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 32,000,560 | 100.0% |
LOAD_FAST_LOAD_FAST | 460 | 0.0% |
LOAD_ATTR_MODULE | 80 | 0.0% |
LOAD_ATTR | 40 | 0.0% |
Successors and predecessors for RESUME_CHECK
Predecessors | Count | Percentage |
---|---|---|
CACHE | 16,000,120 | 100.0% |
CALL_PY_EXACT_ARGS | 1,060 | 0.0% |
COPY_FREE_VARS | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 16,000,000 | 100.0% |
LOAD_FAST | 1,060 | 0.0% |
LOAD_CONST | 140 | 0.0% |
LOAD_GLOBAL | 40 | 0.0% |
Successors and predecessors for STORE_ATTR_SLOT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 48,006,420 | 100.0% |
SWAP | 1,320 | 0.0% |
STORE_ATTR | 200 | 0.0% |
Successors | Count | Percentage |
---|---|---|
RETURN_CONST | 16,000,440 | 33.3% |
LOAD_FAST_LOAD_FAST | 15,999,980 | 33.3% |
STORE_FAST | 15,999,980 | 33.3% |
LOAD_FAST | 7,540 | 0.0% |
Successors and predecessors for STORE_SUBSCR_LIST_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 440 | 95.7% |
STORE_SUBSCR | 20 | 4.3% |
Successors | Count | Percentage |
---|---|---|
JUMP_BACKWARD | 320 | 69.6% |
ENTER_EXECUTOR | 140 | 30.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. |
32,001,740 | 66.7% |
hit
ⓘSpecialized instructions that complete. |
16,002,340 | 33.3% |
Success | Count | Ratio |
---|---|---|
Success | 140 | 1.6% |
Failure | 8,420 | 98.4% |
Failure kind | Count | Ratio |
---|---|---|
multiply different types | 4,140 | 49.2% |
true divide different types | 4,100 | 48.7% |
true divide float | 180 | 2.1% |
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. |
20 | 11.1% |
hit
ⓘSpecialized instructions that complete. |
140 | 77.8% |
Success | Count | Ratio |
---|---|---|
Success | 20 | 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. |
260 | 0.0% |
hit
ⓘSpecialized instructions that complete. |
32,001,680 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 260 | 100.0% |
Failure | 0 | 0.0% |
Failure kind | Count | Ratio |
---|---|---|
init not inline values | 20 | 20 / 0 !! |
specialization stats for COMPARE_OP family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
80 | 2.1% |
hit
ⓘSpecialized instructions that complete. |
3,720 | 95.9% |
Success | Count | Ratio |
---|---|---|
Success | 80 | 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. |
80 | 4.5% |
hit
ⓘSpecialized instructions that complete. |
1,600 | 90.9% |
Success | Count | Ratio |
---|---|---|
Success | 80 | 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. |
420 | 2.3% |
hit
ⓘSpecialized instructions that complete. |
17,720 | 95.5% |
Success | Count | Ratio |
---|---|---|
Success | 420 | 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. |
180 | 0.0% |
hit
ⓘSpecialized instructions that complete. |
32,001,340 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 180 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for POP_JUMP_IF_FALSE family
specialization stats for STORE_ATTR family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
200 | 0.0% |
hit
ⓘSpecialized instructions that complete. |
48,007,940 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 200 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for STORE_SUBSCR family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
20 | 4.0% |
hit
ⓘSpecialized instructions that complete. |
460 | 92.0% |
Success | Count | Ratio |
---|---|---|
Success | 20 | 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. |
192,124,860 | 52.2% |
Not specialized
ⓘInstructions that could be specialized but aren't, e.g. |
32,016,780 | 8.7% |
Specialized hits
ⓘSpecialized instructions, e.g. |
144,031,100 | 39.1% |
Specialized misses
ⓘSpecialized instructions, e.g. |
7,860 | 0.0% |
Breakdown of deferred (not specialized) instruction counts by family
Name | Count | Ratio |
---|---|---|
BINARY_OP | 32,001,740 | 100.0% |
LOAD_ATTR | 420 | 0.0% |
CALL | 260 | 0.0% |
STORE_ATTR | 200 | 0.0% |
LOAD_GLOBAL | 180 | 0.0% |
COMPARE_OP | 80 | 0.0% |
FOR_ITER | 80 | 0.0% |
BINARY_SUBSCR | 20 | 0.0% |
STORE_SUBSCR | 20 | 0.0% |
BINARY_SLICE | 0 | 0.0% |
Breakdown of misses (specialized deopts) instruction counts by family
Name | Count | Ratio |
---|---|---|
RESUME | 7,860 | 50.0% |
RESUME_CHECK | 7,860 | 50.0% |
CACHE | 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% |
RETURN_VALUE | 0 | 0.0% |
BUILD_LIST | 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 | 16,000,160 | 33.3% |
Calls to Python functions inlined | 32,000,080 | 66.7% |
Calls via PyEval_EvalFrame (total) | 16,000,160 | 33.3% |
Calls via PyEval_EvalFrame (vector) | 16,000,160 | 33.3% |
Calls via PyEval_EvalFrame (generator) | 0 | 0.0% |
Calls via PyEval_EvalFrame (legacy) | 0 | 0.0% |
Calls via PyEval_EvalFrame (function vectorcall) | 16,000,160 | 33.3% |
Calls via PyEval_EvalFrame (build class) | 0 | 0.0% |
Calls via PyEval_EvalFrame (slot) | 0 | 0.0% |
Calls via PyEval_EvalFrame (function ex) | 80 | 0.0% |
Calls via PyEval_EvalFrame (api) | 0 | 0.0% |
Calls via PyEval_EvalFrame (method) | 0 | 0.0% |
Frame objects created | 0 | 0.0% |
Frames pushed | 48,000,240 | 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 | 192,014,040 | 70.6% |
Frees to freelist | 192,016,620 | |
Allocations | 79,962,800 | 29.4% |
Allocations to 512 bytes | 79,962,400 | 29.4% |
Allocations to 4 kbytes | 80 | 0.0% |
Allocations over 4 kbytes | 320 | 0.0% |
Frees | 79,961,962 | |
Inline values | 0 | |
Interpreter increfs | 1,183,840,300 | 94.9% |
Interpreter decrefs | 1,343,801,520 | 88.4% |
Increfs | 63,962,480 | 5.1% |
Decrefs | 175,983,322 | 11.6% |
Materialize dict (on request) | 0 | |
Materialize dict (new key) | 0 | |
Materialize dict (too big) | 0 | |
Materialize dict (str subclass) | 0 | |
Method cache hits | 1,080 | |
Method cache misses | 120 | |
Method cache collisions | 98 | |
Method cache dunder hits | 15,999,960 | |
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 | 1,920 | 258,447,793 |
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. |
100 | 45.5% |
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. |
160 | 72.7% |
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. |
120 | 54.5% |
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 |
72,820 | |
Uops executed
ⓘThe total number of uops (micro-operations) that were executed |
2,655,902,480 | 3,647,215.7% |
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 | 0 | 0.0% |
<= 16 | 20 | 20.0% |
<= 32 | 20 | 20.0% |
<= 64 | 0 | 0.0% |
<= 128 | 40 | 40.0% |
<= 256 | 20 | 20.0% |
optimized trace length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
<= 2 | 0 | 0.0% |
<= 4 | 0 | 0.0% |
<= 8 | 0 | 0.0% |
<= 16 | 20 | 20.0% |
<= 32 | 20 | 20.0% |
<= 64 | 20 | 20.0% |
<= 128 | 40 | 40.0% |
trace run length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
<= 2 | 0 | 0.0% |
<= 4 | 0 | 0.0% |
<= 8 | 0 | 0.0% |
<= 16 | 10,840 | 14.9% |
<= 32 | 700 | 1.0% |
<= 64 | 10,880 | 14.9% |
<= 128 | 0 | 0.0% |
<= 256 | 560 | 0.8% |
<= 512 | 0 | 0.0% |
<= 1,024 | 20 | 0.0% |
<= 2,048 | 460 | 0.6% |
<= 4,096 | 0 | 0.0% |
<= 8,192 | 0 | 0.0% |
<= 16,384 | 0 | 0.0% |
<= 32,768 | 23,520 | 32.3% |
<= 65,536 | 0 | 0.0% |
<= 131,072 | 0 | 0.0% |
<= 262,144 | 0 | 0.0% |
<= 524,288 | 0 | 0.0% |
<= 1,048,576 | 0 | 0.0% |
<= 2,097,152 | 160 | 0.2% |
<= 4,194,304 | 160 | 0.2% |
<= 8,388,608 | 0 | 0.0% |
<= 16,777,216 | 160 | 0.2% |
uop execution stats
Name | Count | Self | Cumulative | Miss ratio |
---|---|---|---|---|
_GUARD_TYPE_VERSION | 367,971,800 | 13.9% | 13.9% | |
_LOAD_FAST_0 | 255,941,780 | 9.6% | 23.5% | |
_LOAD_ATTR_SLOT_0 | 239,981,540 | 9.0% | 32.5% | |
_LOAD_FAST_1 | 112,026,880 | 4.2% | 36.7% | |
_SET_IP | 111,996,480 | 4.2% | 41.0% | |
_GUARD_BOTH_FLOAT | 95,994,360 | 3.6% | 44.6% | |
_STORE_ATTR_SLOT | 95,991,380 | 3.6% | 48.2% | |
_CHECK_VALIDITY | 79,997,600 | 3.0% | 51.2% | |
_LOAD_FAST_2 | 79,997,440 | 3.0% | 54.2% | |
_TIER2_RESUME_CHECK | 47,998,880 | 1.8% | 56.0% | |
_COPY | 47,998,560 | 1.8% | 57.8% | |
_SWAP | 47,998,560 | 1.8% | 59.6% | |
_BINARY_OP | 47,998,560 | 1.8% | 61.4% | |
_BINARY_OP_MULTIPLY_FLOAT | 47,998,560 | 1.8% | 63.3% | |
_LOAD_FAST_3 | 47,998,560 | 1.8% | 65.1% | |
_LOAD_FAST_4 | 47,998,560 | 1.8% | 66.9% | |
_STORE_FAST_2 | 47,998,400 | 1.8% | 68.7% | |
_COMPARE_OP_FLOAT | 47,995,800 | 1.8% | 70.5% | |
_GUARD_IS_TRUE_POP | 47,984,360 | 1.8% | 72.3% | 0.1% |
_JUMP_TO_TOP | 47,973,700 | 1.8% | 74.1% | |
_GUARD_NOT_EXHAUSTED_LIST | 31,999,200 | 1.2% | 75.3% | 0.0% |
_ITER_CHECK_LIST | 31,999,200 | 1.2% | 76.5% | |
_BINARY_OP_ADD_FLOAT | 31,999,040 | 1.2% | 77.7% | |
_CHECK_PERIODIC | 31,999,040 | 1.2% | 78.9% | |
_LOAD_CONST_INLINE_WITH_NULL | 31,999,040 | 1.2% | 80.1% | |
_STORE_FAST_3 | 31,999,040 | 1.2% | 81.3% | |
_RESUME_CHECK | 31,998,880 | 1.2% | 82.5% | |
_CHECK_FUNCTION_EXACT_ARGS | 31,998,880 | 1.2% | 83.7% | |
_CHECK_STACK_SPACE_OPERAND | 31,998,880 | 1.2% | 84.9% | |
_ITER_NEXT_LIST | 31,998,880 | 1.2% | 86.1% | |
_LOAD_ATTR_METHOD_NO_DICT | 31,998,880 | 1.2% | 87.3% | |
_PUSH_FRAME | 31,998,880 | 1.2% | 88.6% | |
_SAVE_RETURN_OFFSET | 31,998,880 | 1.2% | 89.8% | |
_POP_FRAME | 31,974,180 | 1.2% | 91.0% | |
_STORE_FAST_1 | 31,974,180 | 1.2% | 92.2% | |
_GUARD_NOT_EXHAUSTED_RANGE | 15,999,680 | 0.6% | 92.8% | 0.0% |
_ITER_CHECK_RANGE | 15,999,680 | 0.6% | 93.4% | |
_POP_TOP | 15,999,520 | 0.6% | 94.0% | |
_STORE_SUBSCR_LIST_INT | 15,999,520 | 0.6% | 94.6% | |
_CALL_BUILTIN_O | 15,999,520 | 0.6% | 95.2% | |
_CALL_NON_PY_GENERAL | 15,999,520 | 0.6% | 95.8% | |
_CHECK_FUNCTION | 15,999,520 | 0.6% | 96.4% | |
_CHECK_IS_NOT_PY_CALLABLE | 15,999,520 | 0.6% | 97.0% | |
_INIT_CALL_PY_EXACT_ARGS_0 | 15,999,520 | 0.6% | 97.6% | |
_ITER_NEXT_RANGE | 15,999,520 | 0.6% | 98.2% | |
_LOAD_CONST_INLINE_BORROW | 15,999,520 | 0.6% | 98.8% | |
_STORE_FAST_4 | 15,999,520 | 0.6% | 99.4% | |
_INIT_CALL_PY_EXACT_ARGS_1 | 15,999,360 | 0.6% | 100.0% | |
_EXIT_TRACE | 47,460 | 0.0% | 100.0% | |
_START_EXECUTOR | 47,460 | 0.0% | 100.0% | |
_COLD_EXIT | 25,360 | 0.0% | 100.0% | |
_GUARD_IS_FALSE_POP | 11,440 | 0.0% | 100.0% | 4.9% |
Pair counts for top 100 Non-JIT uop pairs
Pairs of specialized operations that deoptimize and are then followed by the corresponding unspecialized instruction are not counted as pairs.
Pair | Count | Self | Cumulative |
---|---|---|---|
_GUARD_TYPE_VERSION _LOAD_ATTR_SLOT_0 | 239,981,540 | 9.0% | 9.0% |
_LOAD_FAST_0 _GUARD_TYPE_VERSION | 191,946,840 | 7.2% | 16.3% |
_GUARD_TYPE_VERSION _STORE_ATTR_SLOT | 95,991,380 | 3.6% | 19.9% |
_STORE_ATTR_SLOT _LOAD_FAST_0 | 79,991,860 | 3.0% | 22.9% |
_LOAD_FAST_1 _GUARD_TYPE_VERSION | 64,028,320 | 2.4% | 25.3% |
_COPY _GUARD_TYPE_VERSION | 47,998,560 | 1.8% | 27.1% |
_SWAP _GUARD_TYPE_VERSION | 47,998,560 | 1.8% | 28.9% |
_SET_IP _BINARY_OP | 47,998,560 | 1.8% | 30.7% |
_BINARY_OP _CHECK_VALIDITY | 47,998,560 | 1.8% | 32.5% |
_CHECK_VALIDITY _SWAP | 47,998,560 | 1.8% | 34.3% |
_GUARD_BOTH_FLOAT _BINARY_OP_MULTIPLY_FLOAT | 47,998,560 | 1.8% | 36.1% |
_LOAD_ATTR_SLOT_0 _LOAD_FAST_4 | 47,998,560 | 1.8% | 38.0% |
_LOAD_FAST_0 _COPY | 47,998,560 | 1.8% | 39.8% |
_LOAD_FAST_4 _SET_IP | 47,998,560 | 1.8% | 41.6% |
_GUARD_BOTH_FLOAT _COMPARE_OP_FLOAT | 47,995,800 | 1.8% | 43.4% |
_LOAD_ATTR_SLOT_0 _GUARD_BOTH_FLOAT | 47,995,800 | 1.8% | 45.2% |
_LOAD_ATTR_SLOT_0 _LOAD_FAST_1 | 47,995,800 | 1.8% | 47.0% |
_LOAD_ATTR_SLOT_0 _LOAD_FAST_0 | 47,992,820 | 1.8% | 48.8% |
_COMPARE_OP_FLOAT _GUARD_IS_TRUE_POP | 47,984,360 | 1.8% | 50.6% |
_JUMP_TO_TOP _TIER2_RESUME_CHECK | 47,973,700 | 1.8% | 52.4% |
_GUARD_IS_TRUE_POP _LOAD_FAST_0 | 47,959,660 | 1.8% | 54.2% |
_ITER_CHECK_LIST _GUARD_NOT_EXHAUSTED_LIST | 31,999,200 | 1.2% | 55.4% |
_TIER2_RESUME_CHECK _ITER_CHECK_LIST | 31,999,200 | 1.2% | 56.6% |
_BINARY_OP_MULTIPLY_FLOAT _BINARY_OP_ADD_FLOAT | 31,999,040 | 1.2% | 57.8% |
_CHECK_PERIODIC _CHECK_VALIDITY | 31,999,040 | 1.2% | 59.0% |
_RESUME_CHECK _LOAD_FAST_0 | 31,998,880 | 1.2% | 60.2% |
_SET_IP _CHECK_FUNCTION_EXACT_ARGS | 31,998,880 | 1.2% | 61.4% |
_CHECK_FUNCTION_EXACT_ARGS _CHECK_STACK_SPACE_OPERAND | 31,998,880 | 1.2% | 62.6% |
_GUARD_NOT_EXHAUSTED_LIST _ITER_NEXT_LIST | 31,998,880 | 1.2% | 63.9% |
_GUARD_TYPE_VERSION _LOAD_ATTR_METHOD_NO_DICT | 31,998,880 | 1.2% | 65.1% |
_LOAD_FAST_2 _SET_IP | 31,998,880 | 1.2% | 66.3% |
_PUSH_FRAME _RESUME_CHECK | 31,998,880 | 1.2% | 67.5% |
_SAVE_RETURN_OFFSET _PUSH_FRAME | 31,998,880 | 1.2% | 68.7% |
_ITER_CHECK_RANGE _GUARD_NOT_EXHAUSTED_RANGE | 15,999,680 | 0.6% | 69.3% |
_TIER2_RESUME_CHECK _ITER_CHECK_RANGE | 15,999,680 | 0.6% | 69.9% |
_POP_TOP _JUMP_TO_TOP | 15,999,520 | 0.6% | 70.5% |
_STORE_SUBSCR_LIST_INT _JUMP_TO_TOP | 15,999,520 | 0.6% | 71.1% |
_SET_IP _CALL_BUILTIN_O | 15,999,520 | 0.6% | 71.7% |
_SET_IP _CHECK_IS_NOT_PY_CALLABLE | 15,999,520 | 0.6% | 72.3% |
_BINARY_OP_ADD_FLOAT _SET_IP | 15,999,520 | 0.6% | 72.9% |
_BINARY_OP_ADD_FLOAT _LOAD_FAST_3 | 15,999,520 | 0.6% | 73.5% |
_BINARY_OP_MULTIPLY_FLOAT _LOAD_FAST_2 | 15,999,520 | 0.6% | 74.1% |
_CALL_BUILTIN_O _CHECK_PERIODIC | 15,999,520 | 0.6% | 74.7% |
_CALL_NON_PY_GENERAL _CHECK_PERIODIC | 15,999,520 | 0.6% | 75.3% |
_CHECK_FUNCTION _LOAD_CONST_INLINE_WITH_NULL | 15,999,520 | 0.6% | 75.9% |
_CHECK_IS_NOT_PY_CALLABLE _CALL_NON_PY_GENERAL | 15,999,520 | 0.6% | 76.5% |
_CHECK_STACK_SPACE_OPERAND _INIT_CALL_PY_EXACT_ARGS_0 | 15,999,520 | 0.6% | 77.1% |
_CHECK_VALIDITY _LOAD_FAST_1 | 15,999,520 | 0.6% | 77.7% |
_CHECK_VALIDITY _STORE_FAST_4 | 15,999,520 | 0.6% | 78.3% |
_GUARD_NOT_EXHAUSTED_RANGE _ITER_NEXT_RANGE | 15,999,520 | 0.6% | 78.9% |
_INIT_CALL_PY_EXACT_ARGS_0 _SAVE_RETURN_OFFSET | 15,999,520 | 0.6% | 79.5% |
_ITER_NEXT_LIST _STORE_FAST_3 | 15,999,520 | 0.6% | 80.1% |
_ITER_NEXT_RANGE _STORE_FAST_2 | 15,999,520 | 0.6% | 80.7% |
_LOAD_ATTR_METHOD_NO_DICT _SET_IP | 15,999,520 | 0.6% | 81.3% |
_LOAD_ATTR_SLOT_0 _STORE_FAST_1 | 15,999,520 | 0.6% | 81.9% |
_LOAD_ATTR_SLOT_0 _STORE_FAST_2 | 15,999,520 | 0.6% | 82.5% |
_LOAD_ATTR_SLOT_0 _STORE_FAST_3 | 15,999,520 | 0.6% | 83.1% |
_LOAD_CONST_INLINE_BORROW _POP_FRAME | 15,999,520 | 0.6% | 83.7% |
_LOAD_CONST_INLINE_WITH_NULL _LOAD_FAST_1 | 15,999,520 | 0.6% | 84.3% |
_LOAD_CONST_INLINE_WITH_NULL _LOAD_FAST_2 | 15,999,520 | 0.6% | 84.9% |
_LOAD_FAST_1 _GUARD_BOTH_FLOAT | 15,999,520 | 0.6% | 85.5% |
_LOAD_FAST_1 _LOAD_FAST_1 | 15,999,520 | 0.6% | 86.1% |
_LOAD_FAST_1 _LOAD_FAST_2 | 15,999,520 | 0.6% | 86.7% |
_LOAD_FAST_2 _STORE_SUBSCR_LIST_INT | 15,999,520 | 0.6% | 87.3% |
_LOAD_FAST_2 _GUARD_BOTH_FLOAT | 15,999,520 | 0.6% | 87.9% |
_LOAD_FAST_2 _LOAD_FAST_2 | 15,999,520 | 0.6% | 88.5% |
_LOAD_FAST_3 _GUARD_BOTH_FLOAT | 15,999,520 | 0.6% | 89.2% |
_LOAD_FAST_3 _GUARD_TYPE_VERSION | 15,999,520 | 0.6% | 89.8% |
_LOAD_FAST_3 _LOAD_FAST_3 | 15,999,520 | 0.6% | 90.4% |
_POP_FRAME _POP_TOP | 15,999,520 | 0.6% | 91.0% |
_STORE_ATTR_SLOT _LOAD_CONST_INLINE_BORROW | 15,999,520 | 0.6% | 91.6% |
_STORE_FAST_1 _LOAD_FAST_0 | 15,999,520 | 0.6% | 92.2% |
_STORE_FAST_2 _CHECK_FUNCTION | 15,999,520 | 0.6% | 92.8% |
_STORE_FAST_2 _LOAD_FAST_0 | 15,999,520 | 0.6% | 93.4% |
_STORE_FAST_3 _LOAD_CONST_INLINE_WITH_NULL | 15,999,520 | 0.6% | 94.0% |
_STORE_FAST_3 _LOAD_FAST_3 | 15,999,520 | 0.6% | 94.6% |
_STORE_FAST_4 _LOAD_FAST_0 | 15,999,520 | 0.6% | 95.2% |
_CHECK_STACK_SPACE_OPERAND _INIT_CALL_PY_EXACT_ARGS_1 | 15,999,360 | 0.6% | 95.8% |
_INIT_CALL_PY_EXACT_ARGS_1 _SAVE_RETURN_OFFSET | 15,999,360 | 0.6% | 96.4% |
_ITER_NEXT_LIST _STORE_FAST_2 | 15,999,360 | 0.6% | 97.0% |
_LOAD_ATTR_METHOD_NO_DICT _LOAD_FAST_2 | 15,999,360 | 0.6% | 97.6% |
_STORE_FAST_2 _LOAD_FAST_1 | 15,999,360 | 0.6% | 98.2% |
_LOAD_FAST_0 _POP_FRAME | 15,974,660 | 0.6% | 98.8% |
_POP_FRAME _STORE_FAST_1 | 15,974,660 | 0.6% | 99.4% |
_STORE_FAST_1 _JUMP_TO_TOP | 15,974,660 | 0.6% | 100.0% |
_START_EXECUTOR _TIER2_RESUME_CHECK | 25,180 | 0.0% | 100.0% |
_GUARD_IS_TRUE_POP _EXIT_TRACE | 24,700 | 0.0% | 100.0% |
_START_EXECUTOR _LOAD_FAST_1 | 22,280 | 0.0% | 100.0% |
_LOAD_FAST_0 _EXIT_TRACE | 21,720 | 0.0% | 100.0% |
_COMPARE_OP_FLOAT _GUARD_IS_FALSE_POP | 11,440 | 0.0% | 100.0% |
_GUARD_IS_FALSE_POP _LOAD_FAST_1 | 10,880 | 0.0% | 100.0% |
_GUARD_IS_FALSE_POP _EXIT_TRACE | 560 | 0.0% | 100.0% |
_GUARD_NOT_EXHAUSTED_LIST _EXIT_TRACE | 320 | 0.0% | 100.0% |
_GUARD_NOT_EXHAUSTED_RANGE _EXIT_TRACE | 160 | 0.0% | 100.0% |
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