- benchmark: spectral_norm
- 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 | 1,483,540 | 13.9% | 13.9% | |
BINARY_OP_ADD_INT | 1,062,300 | 10.0% | 23.9% | |
LOAD_CONST | 1,062,000 | 10.0% | 33.8% | |
LOAD_FAST_LOAD_FAST | 643,260 | 6.0% | 39.8% | |
BINARY_OP | 640,460 | 6.0% | 45.8% | |
RETURN_VALUE | 633,440 | 5.9% | 51.8% | |
ENTER_EXECUTOR | 627,340 | 5.9% | 57.6% | |
STORE_FAST | 428,700 | 4.0% | 61.7% | |
RESUME_CHECK | 428,300 | 4.0% | 65.7% | |
CALL_PY_EXACT_ARGS | 428,200 | 4.0% | 69.7% | 0.9% |
STORE_FAST_STORE_FAST | 424,800 | 4.0% | 73.7% | |
UNPACK_SEQUENCE_TWO_TUPLE | 424,620 | 4.0% | 77.6% | |
POP_TOP | 417,500 | 3.9% | 81.6% | |
LIST_APPEND | 416,000 | 3.9% | 85.5% | |
LOAD_GLOBAL_BUILTIN | 220,260 | 2.1% | 87.5% | |
LOAD_GLOBAL_MODULE | 218,460 | 2.0% | 89.6% | |
CALL_BUILTIN_CLASS | 217,440 | 2.0% | 91.6% | |
GET_ITER | 214,860 | 2.0% | 93.6% | |
FOR_ITER | 213,420 | 2.0% | 95.6% | |
BINARY_OP_MULTIPLY_INT | 212,460 | 2.0% | 97.6% | |
BINARY_OP_MULTIPLY_FLOAT | 209,060 | 2.0% | 99.6% | |
SWAP | 6,840 | 0.1% | 99.6% | |
FOR_ITER_RANGE | 5,520 | 0.1% | 99.7% | |
PUSH_NULL | 5,420 | 0.1% | 99.7% | |
BUILD_TUPLE | 5,020 | 0.0% | 99.8% | |
STORE_FAST_LOAD_FAST | 5,020 | 0.0% | 99.8% | |
JUMP_BACKWARD | 3,700 | 0.0% | 99.9% | |
BINARY_OP_ADD_FLOAT | 3,520 | 0.0% | 99.9% | 63.6% |
BUILD_LIST | 2,940 | 0.0% | 99.9% | |
LOAD_FAST_AND_CLEAR | 2,780 | 0.0% | 99.9% | |
CALL_LEN | 2,760 | 0.0% | 100.0% | |
LOAD_GLOBAL | 800 | 0.0% | 100.0% | |
CALL | 780 | 0.0% | 100.0% | |
LOAD_DEREF | 240 | 0.0% | 100.0% | |
UNPACK_SEQUENCE | 200 | 0.0% | 100.0% | |
CALL_NON_PY_GENERAL | 180 | 0.0% | 100.0% | |
LOAD_ATTR_MODULE | 180 | 0.0% | 100.0% | |
CALL_FUNCTION_EX | 160 | 0.0% | 100.0% | |
RESUME | 140 | 0.0% | 100.0% | |
LOAD_ATTR | 120 | 0.0% | 100.0% | |
NOP | 80 | 0.0% | 100.0% | |
CALL_INTRINSIC_1 | 80 | 0.0% | 100.0% | |
COPY | 80 | 0.0% | 100.0% | |
COPY_FREE_VARS | 80 | 0.0% | 100.0% | |
LIST_EXTEND | 80 | 0.0% | 100.0% | |
LOAD_FAST_CHECK | 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 |
---|---|---|---|
CALL_PY_EXACT_ARGS RESUME_CHECK | 428,120 | 4.0% | 4.0% |
BINARY_OP_ADD_INT LOAD_CONST | 424,920 | 4.0% | 8.0% |
LOAD_CONST BINARY_OP_ADD_INT | 424,880 | 4.0% | 12.0% |
LOAD_FAST_LOAD_FAST BINARY_OP_ADD_INT | 424,880 | 4.0% | 16.0% |
UNPACK_SEQUENCE_TWO_TUPLE STORE_FAST_STORE_FAST | 424,620 | 4.0% | 19.9% |
ENTER_EXECUTOR POP_TOP | 417,360 | 3.9% | 23.8% |
POP_TOP LOAD_FAST | 416,000 | 3.9% | 27.7% |
RETURN_VALUE LIST_APPEND | 416,000 | 3.9% | 31.6% |
LOAD_FAST RETURN_VALUE | 416,000 | 3.9% | 35.5% |
LIST_APPEND ENTER_EXECUTOR | 413,740 | 3.9% | 39.4% |
LOAD_GLOBAL_BUILTIN LOAD_FAST | 214,680 | 2.0% | 41.4% |
CALL_BUILTIN_CLASS GET_ITER | 214,620 | 2.0% | 43.4% |
LOAD_FAST CALL_BUILTIN_CLASS | 214,540 | 2.0% | 45.4% |
FOR_ITER UNPACK_SEQUENCE_TWO_TUPLE | 212,760 | 2.0% | 47.4% |
LOAD_CONST BINARY_OP | 212,560 | 2.0% | 49.4% |
BINARY_OP RETURN_VALUE | 212,500 | 2.0% | 51.4% |
RETURN_VALUE LOAD_FAST | 212,480 | 2.0% | 53.4% |
BINARY_OP LOAD_FAST | 212,480 | 2.0% | 55.4% |
LOAD_CONST LOAD_FAST_LOAD_FAST | 212,480 | 2.0% | 57.4% |
STORE_FAST_STORE_FAST LOAD_FAST | 212,480 | 2.0% | 59.4% |
BINARY_OP_ADD_INT BINARY_OP | 212,480 | 2.0% | 61.4% |
BINARY_OP_ADD_INT LOAD_FAST_LOAD_FAST | 212,460 | 2.0% | 63.4% |
BINARY_OP_MULTIPLY_INT LOAD_CONST | 212,460 | 2.0% | 65.4% |
RESUME_CHECK LOAD_CONST | 212,460 | 2.0% | 67.3% |
LOAD_FAST BINARY_OP_ADD_INT | 212,440 | 2.0% | 69.3% |
BINARY_OP_ADD_INT BINARY_OP_MULTIPLY_INT | 212,440 | 2.0% | 71.3% |
LOAD_GLOBAL_MODULE LOAD_FAST_LOAD_FAST | 212,440 | 2.0% | 73.3% |
LOAD_FAST LOAD_GLOBAL_MODULE | 212,400 | 2.0% | 75.3% |
LOAD_FAST_LOAD_FAST CALL_PY_EXACT_ARGS | 212,400 | 2.0% | 77.3% |
STORE_FAST ENTER_EXECUTOR | 212,320 | 2.0% | 79.3% |
GET_ITER FOR_ITER | 211,960 | 2.0% | 81.3% |
LOAD_CONST STORE_FAST | 211,840 | 2.0% | 83.3% |
STORE_FAST_STORE_FAST LOAD_CONST | 211,840 | 2.0% | 85.2% |
STORE_FAST LOAD_GLOBAL_BUILTIN | 211,800 | 2.0% | 87.2% |
RESUME_CHECK LOAD_FAST | 211,800 | 2.0% | 89.2% |
LOAD_FAST UNPACK_SEQUENCE_TWO_TUPLE | 211,760 | 2.0% | 91.2% |
BINARY_OP STORE_FAST | 209,880 | 2.0% | 93.2% |
LOAD_FAST BINARY_OP_MULTIPLY_FLOAT | 209,000 | 2.0% | 95.1% |
BINARY_OP_MULTIPLY_FLOAT BINARY_OP | 206,980 | 1.9% | 97.1% |
ENTER_EXECUTOR CALL_PY_EXACT_ARGS | 206,800 | 1.9% | 99.0% |
LOAD_GLOBAL_BUILTIN LOAD_GLOBAL_BUILTIN | 5,480 | 0.1% | 99.0% |
PUSH_NULL LOAD_FAST_LOAD_FAST | 5,020 | 0.0% | 99.1% |
LOAD_FAST_LOAD_FAST BUILD_TUPLE | 5,020 | 0.0% | 99.1% |
STORE_FAST_LOAD_FAST PUSH_NULL | 5,020 | 0.0% | 99.2% |
FOR_ITER_RANGE STORE_FAST_LOAD_FAST | 5,000 | 0.0% | 99.2% |
BUILD_TUPLE CALL_PY_EXACT_ARGS | 4,980 | 0.0% | 99.3% |
LOAD_FAST BINARY_OP | 4,360 | 0.0% | 99.3% |
BINARY_OP BINARY_OP | 3,880 | 0.0% | 99.4% |
BINARY_OP_ADD_FLOAT STORE_FAST | 3,480 | 0.0% | 99.4% |
LOAD_GLOBAL_MODULE LOAD_GLOBAL_MODULE | 3,420 | 0.0% | 99.4% |
GET_ITER LOAD_FAST_AND_CLEAR | 2,780 | 0.0% | 99.4% |
BUILD_LIST SWAP | 2,780 | 0.0% | 99.5% |
LOAD_FAST_AND_CLEAR SWAP | 2,780 | 0.0% | 99.5% |
SWAP BUILD_LIST | 2,780 | 0.0% | 99.5% |
RESUME_CHECK LOAD_GLOBAL_BUILTIN | 2,780 | 0.0% | 99.6% |
SWAP FOR_ITER_RANGE | 2,760 | 0.0% | 99.6% |
CALL_BUILTIN_CLASS CALL_LEN | 2,740 | 0.0% | 99.6% |
CALL_LEN CALL_BUILTIN_CLASS | 2,740 | 0.0% | 99.6% |
JUMP_BACKWARD FOR_ITER_RANGE | 2,580 | 0.0% | 99.7% |
LOAD_GLOBAL_MODULE LOAD_FAST | 2,300 | 0.0% | 99.7% |
LIST_APPEND JUMP_BACKWARD | 2,260 | 0.0% | 99.7% |
LOAD_FAST CALL_PY_EXACT_ARGS | 2,240 | 0.0% | 99.7% |
BINARY_OP_MULTIPLY_FLOAT BINARY_OP_ADD_FLOAT | 2,080 | 0.0% | 99.7% |
ENTER_EXECUTOR RETURN_VALUE | 1,920 | 0.0% | 99.8% |
RETURN_VALUE RETURN_VALUE | 1,680 | 0.0% | 99.8% |
RETURN_VALUE STORE_FAST | 1,600 | 0.0% | 99.8% |
RETURN_VALUE CALL_PY_EXACT_ARGS | 1,560 | 0.0% | 99.8% |
BINARY_OP BINARY_OP_ADD_FLOAT | 1,440 | 0.0% | 99.8% |
STORE_FAST JUMP_BACKWARD | 1,360 | 0.0% | 99.8% |
POP_TOP SWAP | 1,280 | 0.0% | 99.8% |
STORE_FAST RETURN_VALUE | 1,280 | 0.0% | 99.9% |
SWAP STORE_FAST | 1,280 | 0.0% | 99.9% |
ENTER_EXECUTOR ENTER_EXECUTOR | 1,260 | 0.0% | 99.9% |
STORE_FAST LOAD_GLOBAL_MODULE | 1,140 | 0.0% | 99.9% |
RESUME_CHECK LOAD_GLOBAL_MODULE | 1,140 | 0.0% | 99.9% |
JUMP_BACKWARD FOR_ITER | 1,020 | 0.0% | 99.9% |
LOAD_FAST_LOAD_FAST LOAD_FAST | 800 | 0.0% | 99.9% |
FOR_ITER FOR_ITER | 420 | 0.0% | 99.9% |
FOR_ITER_RANGE STORE_FAST | 420 | 0.0% | 99.9% |
STORE_FAST LOAD_FAST_LOAD_FAST | 400 | 0.0% | 99.9% |
STORE_FAST_STORE_FAST LOAD_FAST_LOAD_FAST | 400 | 0.0% | 99.9% |
LOAD_FAST CALL | 280 | 0.0% | 99.9% |
LOAD_GLOBAL LOAD_GLOBAL_MODULE | 240 | 0.0% | 99.9% |
STORE_FAST LOAD_GLOBAL | 240 | 0.0% | 99.9% |
LOAD_ATTR_MODULE PUSH_NULL | 180 | 0.0% | 99.9% |
PUSH_NULL LOAD_FAST | 160 | 0.0% | 99.9% |
CALL GET_ITER | 160 | 0.0% | 99.9% |
LOAD_DEREF PUSH_NULL | 160 | 0.0% | 99.9% |
LOAD_GLOBAL LOAD_FAST | 160 | 0.0% | 99.9% |
LOAD_GLOBAL LOAD_GLOBAL_BUILTIN | 160 | 0.0% | 99.9% |
CALL CALL_PY_EXACT_ARGS | 140 | 0.0% | 99.9% |
GET_ITER FOR_ITER_RANGE | 120 | 0.0% | 99.9% |
PUSH_NULL CALL | 120 | 0.0% | 99.9% |
PUSH_NULL CALL_NON_PY_GENERAL | 120 | 0.0% | 100.0% |
CALL CALL_BUILTIN_CLASS | 120 | 0.0% | 100.0% |
FOR_ITER UNPACK_SEQUENCE | 120 | 0.0% | 100.0% |
LOAD_GLOBAL_MODULE LOAD_ATTR_MODULE | 120 | 0.0% | 100.0% |
BINARY_OP BINARY_OP_ADD_INT | 100 | 0.0% | 100.0% |
LOAD_GLOBAL LOAD_GLOBAL | 100 | 0.0% | 100.0% |
UNPACK_SEQUENCE STORE_FAST_STORE_FAST | 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 GET_ITER
Predecessors | Count | Percentage |
---|---|---|
CALL_BUILTIN_CLASS | 214,620 | 99.9% |
CALL | 160 | 0.1% |
LOAD_FAST | 80 | 0.0% |
Successors | Count | Percentage |
---|---|---|
FOR_ITER | 211,960 | 98.7% |
LOAD_FAST_AND_CLEAR | 2,780 | 1.3% |
FOR_ITER_RANGE | 120 | 0.1% |
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 |
---|---|---|
ENTER_EXECUTOR | 417,360 | 100.0% |
JUMP_BACKWARD | 60 | 0.0% |
CALL_NON_PY_GENERAL | 60 | 0.0% |
CALL | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 416,000 | 99.6% |
SWAP | 1,280 | 0.3% |
NOP | 80 | 0.0% |
JUMP_BACKWARD | 80 | 0.0% |
LOAD_CONST | 60 | 0.0% |
Successors and predecessors for PUSH_NULL
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST_LOAD_FAST | 5,020 | 92.6% |
LOAD_ATTR_MODULE | 180 | 3.3% |
LOAD_DEREF | 160 | 3.0% |
LOAD_ATTR | 60 | 1.1% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 5,020 | 92.6% |
LOAD_FAST | 160 | 3.0% |
CALL | 120 | 2.2% |
CALL_NON_PY_GENERAL | 120 | 2.2% |
Successors and predecessors for RETURN_VALUE
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 416,000 | 65.7% |
BINARY_OP | 212,500 | 33.5% |
ENTER_EXECUTOR | 1,920 | 0.3% |
RETURN_VALUE | 1,680 | 0.3% |
STORE_FAST | 1,280 | 0.2% |
Successors | Count | Percentage |
---|---|---|
LIST_APPEND | 416,000 | 65.7% |
LOAD_FAST | 212,480 | 33.5% |
RETURN_VALUE | 1,680 | 0.3% |
STORE_FAST | 1,600 | 0.3% |
CALL_PY_EXACT_ARGS | 1,560 | 0.2% |
Successors and predecessors for BINARY_OP
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 212,560 | 33.2% |
BINARY_OP_ADD_INT | 212,480 | 33.2% |
BINARY_OP_MULTIPLY_FLOAT | 206,980 | 32.3% |
LOAD_FAST | 4,360 | 0.7% |
BINARY_OP | 3,880 | 0.6% |
Successors | Count | Percentage |
---|---|---|
RETURN_VALUE | 212,500 | 33.2% |
LOAD_FAST | 212,480 | 33.2% |
STORE_FAST | 209,880 | 32.8% |
BINARY_OP | 3,880 | 0.6% |
BINARY_OP_ADD_FLOAT | 1,440 | 0.2% |
Successors and predecessors for BUILD_LIST
Predecessors | Count | Percentage |
---|---|---|
SWAP | 2,780 | 94.6% |
LOAD_CONST | 80 | 2.7% |
LOAD_FAST | 80 | 2.7% |
Successors | Count | Percentage |
---|---|---|
SWAP | 2,780 | 94.6% |
LOAD_DEREF | 80 | 2.7% |
LOAD_GLOBAL | 40 | 1.4% |
LOAD_GLOBAL_MODULE | 40 | 1.4% |
Successors and predecessors for BUILD_TUPLE
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 5,020 | 100.0% |
Successors | Count | Percentage |
---|---|---|
CALL_PY_EXACT_ARGS | 4,980 | 99.2% |
CALL | 40 | 0.8% |
Successors and predecessors for CALL
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 280 | 35.9% |
PUSH_NULL | 120 | 15.4% |
LOAD_FAST_CHECK | 80 | 10.3% |
LOAD_FAST_LOAD_FAST | 80 | 10.3% |
CALL | 60 | 7.7% |
Successors | Count | Percentage |
---|---|---|
GET_ITER | 160 | 20.5% |
CALL_PY_EXACT_ARGS | 140 | 17.9% |
CALL_BUILTIN_CLASS | 120 | 15.4% |
RESUME | 80 | 10.3% |
CALL | 60 | 7.7% |
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 COPY
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 80 | 100.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST_STORE_FAST | 80 | 100.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 |
---|---|---|
LIST_APPEND | 413,740 | 66.0% |
STORE_FAST | 212,320 | 33.8% |
ENTER_EXECUTOR | 1,260 | 0.2% |
JUMP_BACKWARD | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 417,360 | 66.5% |
CALL_PY_EXACT_ARGS | 206,800 | 33.0% |
RETURN_VALUE | 1,920 | 0.3% |
ENTER_EXECUTOR | 1,260 | 0.2% |
Successors and predecessors for FOR_ITER
Predecessors | Count | Percentage |
---|---|---|
GET_ITER | 211,960 | 99.3% |
JUMP_BACKWARD | 1,020 | 0.5% |
FOR_ITER | 420 | 0.2% |
SWAP | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
UNPACK_SEQUENCE_TWO_TUPLE | 212,760 | 99.7% |
FOR_ITER | 420 | 0.2% |
UNPACK_SEQUENCE | 120 | 0.1% |
FOR_ITER_RANGE | 60 | 0.0% |
STORE_FAST | 40 | 0.0% |
Successors and predecessors for JUMP_BACKWARD
Predecessors | Count | Percentage |
---|---|---|
LIST_APPEND | 2,260 | 61.1% |
STORE_FAST | 1,360 | 36.8% |
POP_TOP | 80 | 2.2% |
Successors | Count | Percentage |
---|---|---|
FOR_ITER_RANGE | 2,580 | 69.7% |
FOR_ITER | 1,020 | 27.6% |
POP_TOP | 60 | 1.6% |
ENTER_EXECUTOR | 20 | 0.5% |
CALL_PY_EXACT_ARGS | 20 | 0.5% |
Successors and predecessors for LIST_APPEND
Predecessors | Count | Percentage |
---|---|---|
RETURN_VALUE | 416,000 | 100.0% |
Successors | Count | Percentage |
---|---|---|
ENTER_EXECUTOR | 413,740 | 99.5% |
JUMP_BACKWARD | 2,260 | 0.5% |
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_GLOBAL | 60 | 50.0% |
LOAD_GLOBAL_MODULE | 60 | 50.0% |
Successors | Count | Percentage |
---|---|---|
PUSH_NULL | 60 | 50.0% |
LOAD_ATTR_MODULE | 60 | 50.0% |
Successors and predecessors for LOAD_CONST
Predecessors | Count | Percentage |
---|---|---|
BINARY_OP_ADD_INT | 424,920 | 40.0% |
BINARY_OP_MULTIPLY_INT | 212,460 | 20.0% |
RESUME_CHECK | 212,460 | 20.0% |
STORE_FAST_STORE_FAST | 211,840 | 19.9% |
STORE_FAST | 80 | 0.0% |
Successors | Count | Percentage |
---|---|---|
BINARY_OP_ADD_INT | 424,880 | 40.0% |
BINARY_OP | 212,560 | 20.0% |
LOAD_FAST_LOAD_FAST | 212,480 | 20.0% |
STORE_FAST | 211,840 | 19.9% |
BUILD_LIST | 80 | 0.0% |
Successors and predecessors for LOAD_DEREF
Predecessors | Count | Percentage |
---|---|---|
NOP | 80 | 33.3% |
BUILD_LIST | 80 | 33.3% |
RESUME_CHECK | 60 | 25.0% |
RESUME | 20 | 8.3% |
Successors | Count | Percentage |
---|---|---|
PUSH_NULL | 160 | 66.7% |
LIST_EXTEND | 80 | 33.3% |
Successors and predecessors for LOAD_FAST
Predecessors | Count | Percentage |
---|---|---|
POP_TOP | 416,000 | 28.0% |
LOAD_GLOBAL_BUILTIN | 214,680 | 14.5% |
RETURN_VALUE | 212,480 | 14.3% |
BINARY_OP | 212,480 | 14.3% |
STORE_FAST_STORE_FAST | 212,480 | 14.3% |
Successors | Count | Percentage |
---|---|---|
RETURN_VALUE | 416,000 | 28.0% |
CALL_BUILTIN_CLASS | 214,540 | 14.5% |
BINARY_OP_ADD_INT | 212,440 | 14.3% |
LOAD_GLOBAL_MODULE | 212,400 | 14.3% |
UNPACK_SEQUENCE_TWO_TUPLE | 211,760 | 14.3% |
Successors and predecessors for LOAD_FAST_AND_CLEAR
Predecessors | Count | Percentage |
---|---|---|
GET_ITER | 2,780 | 100.0% |
Successors | Count | Percentage |
---|---|---|
SWAP | 2,780 | 100.0% |
Successors and predecessors for LOAD_FAST_CHECK
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 80 | 100.0% |
Successors | Count | Percentage |
---|---|---|
CALL | 80 | 100.0% |
Successors and predecessors for LOAD_FAST_LOAD_FAST
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 212,480 | 33.0% |
BINARY_OP_ADD_INT | 212,460 | 33.0% |
LOAD_GLOBAL_MODULE | 212,440 | 33.0% |
PUSH_NULL | 5,020 | 0.8% |
STORE_FAST | 400 | 0.1% |
Successors | Count | Percentage |
---|---|---|
BINARY_OP_ADD_INT | 424,880 | 66.1% |
CALL_PY_EXACT_ARGS | 212,400 | 33.0% |
BUILD_TUPLE | 5,020 | 0.8% |
LOAD_FAST | 800 | 0.1% |
BINARY_OP | 80 | 0.0% |
Successors and predecessors for LOAD_GLOBAL
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 240 | 30.0% |
LOAD_GLOBAL | 100 | 12.5% |
LOAD_FAST | 80 | 10.0% |
RESUME | 60 | 7.5% |
LOAD_GLOBAL_MODULE | 60 | 7.5% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 240 | 30.0% |
LOAD_FAST | 160 | 20.0% |
LOAD_GLOBAL_BUILTIN | 160 | 20.0% |
LOAD_GLOBAL | 100 | 12.5% |
LOAD_ATTR | 60 | 7.5% |
Successors and predecessors for STORE_FAST
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 211,840 | 49.4% |
BINARY_OP | 209,880 | 49.0% |
BINARY_OP_ADD_FLOAT | 3,480 | 0.8% |
RETURN_VALUE | 1,600 | 0.4% |
SWAP | 1,280 | 0.3% |
Successors | Count | Percentage |
---|---|---|
ENTER_EXECUTOR | 212,320 | 49.5% |
LOAD_GLOBAL_BUILTIN | 211,800 | 49.4% |
JUMP_BACKWARD | 1,360 | 0.3% |
RETURN_VALUE | 1,280 | 0.3% |
LOAD_GLOBAL_MODULE | 1,140 | 0.3% |
Successors and predecessors for STORE_FAST_LOAD_FAST
Predecessors | Count | Percentage |
---|---|---|
FOR_ITER_RANGE | 5,000 | 99.6% |
FOR_ITER | 20 | 0.4% |
Successors | Count | Percentage |
---|---|---|
PUSH_NULL | 5,020 | 100.0% |
Successors and predecessors for STORE_FAST_STORE_FAST
Predecessors | Count | Percentage |
---|---|---|
UNPACK_SEQUENCE_TWO_TUPLE | 424,620 | 100.0% |
UNPACK_SEQUENCE | 100 | 0.0% |
COPY | 80 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 212,480 | 50.0% |
LOAD_CONST | 211,840 | 49.9% |
LOAD_FAST_LOAD_FAST | 400 | 0.1% |
LOAD_GLOBAL | 40 | 0.0% |
LOAD_GLOBAL_BUILTIN | 40 | 0.0% |
Successors and predecessors for SWAP
Predecessors | Count | Percentage |
---|---|---|
BUILD_LIST | 2,780 | 40.6% |
LOAD_FAST_AND_CLEAR | 2,780 | 40.6% |
POP_TOP | 1,280 | 18.7% |
Successors | Count | Percentage |
---|---|---|
BUILD_LIST | 2,780 | 40.6% |
FOR_ITER_RANGE | 2,760 | 40.4% |
STORE_FAST | 1,280 | 18.7% |
FOR_ITER | 20 | 0.3% |
Successors and predecessors for UNPACK_SEQUENCE
Predecessors | Count | Percentage |
---|---|---|
FOR_ITER | 120 | 60.0% |
LOAD_FAST | 80 | 40.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST_STORE_FAST | 100 | 50.0% |
UNPACK_SEQUENCE_TWO_TUPLE | 100 | 50.0% |
Successors and predecessors for RESUME
Predecessors | Count | Percentage |
---|---|---|
CALL | 80 | 57.1% |
CALL_FUNCTION_EX | 20 | 14.3% |
COPY_FREE_VARS | 20 | 14.3% |
CALL_PY_EXACT_ARGS | 20 | 14.3% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL | 60 | 42.9% |
LOAD_FAST | 40 | 28.6% |
LOAD_CONST | 20 | 14.3% |
LOAD_DEREF | 20 | 14.3% |
Successors and predecessors for BINARY_OP_ADD_FLOAT
Predecessors | Count | Percentage |
---|---|---|
BINARY_OP_MULTIPLY_FLOAT | 2,080 | 59.1% |
BINARY_OP | 1,440 | 40.9% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 3,480 | 98.9% |
BINARY_OP | 40 | 1.1% |
Successors and predecessors for BINARY_OP_ADD_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 424,880 | 40.0% |
LOAD_FAST_LOAD_FAST | 424,880 | 40.0% |
LOAD_FAST | 212,440 | 20.0% |
BINARY_OP | 100 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST | 424,920 | 40.0% |
BINARY_OP | 212,480 | 20.0% |
LOAD_FAST_LOAD_FAST | 212,460 | 20.0% |
BINARY_OP_MULTIPLY_INT | 212,440 | 20.0% |
Successors and predecessors for BINARY_OP_MULTIPLY_FLOAT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 209,000 | 100.0% |
BINARY_OP | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
BINARY_OP | 206,980 | 99.0% |
BINARY_OP_ADD_FLOAT | 2,080 | 1.0% |
Successors and predecessors for BINARY_OP_MULTIPLY_INT
Predecessors | Count | Percentage |
---|---|---|
BINARY_OP_ADD_INT | 212,440 | 100.0% |
BINARY_OP | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST | 212,460 | 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_BUILTIN_CLASS
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 214,540 | 98.7% |
CALL_LEN | 2,740 | 1.3% |
CALL | 120 | 0.1% |
LOAD_CONST | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
GET_ITER | 214,620 | 98.7% |
CALL_LEN | 2,740 | 1.3% |
STORE_FAST | 60 | 0.0% |
CALL | 20 | 0.0% |
Successors and predecessors for CALL_LEN
Predecessors | Count | Percentage |
---|---|---|
CALL_BUILTIN_CLASS | 2,740 | 99.3% |
CALL | 20 | 0.7% |
Successors | Count | Percentage |
---|---|---|
CALL_BUILTIN_CLASS | 2,740 | 99.3% |
CALL | 20 | 0.7% |
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 |
---|---|---|
LOAD_FAST_LOAD_FAST | 212,400 | 49.6% |
ENTER_EXECUTOR | 206,800 | 48.3% |
BUILD_TUPLE | 4,980 | 1.2% |
LOAD_FAST | 2,240 | 0.5% |
RETURN_VALUE | 1,560 | 0.4% |
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 428,120 | 100.0% |
CALL_PY_EXACT_ARGS | 60 | 0.0% |
RESUME | 20 | 0.0% |
Successors and predecessors for FOR_ITER_RANGE
Predecessors | Count | Percentage |
---|---|---|
SWAP | 2,760 | 50.0% |
JUMP_BACKWARD | 2,580 | 46.7% |
GET_ITER | 120 | 2.2% |
FOR_ITER | 60 | 1.1% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST_LOAD_FAST | 5,000 | 90.6% |
STORE_FAST | 420 | 7.6% |
LOAD_GLOBAL | 40 | 0.7% |
LOAD_GLOBAL_MODULE | 40 | 0.7% |
LOAD_CONST | 20 | 0.4% |
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 |
---|---|---|
STORE_FAST | 211,800 | 96.2% |
LOAD_GLOBAL_BUILTIN | 5,480 | 2.5% |
RESUME_CHECK | 2,780 | 1.3% |
LOAD_GLOBAL | 160 | 0.1% |
STORE_FAST_STORE_FAST | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 214,680 | 97.5% |
LOAD_GLOBAL_BUILTIN | 5,480 | 2.5% |
LOAD_CONST | 60 | 0.0% |
LOAD_GLOBAL | 40 | 0.0% |
Successors and predecessors for LOAD_GLOBAL_MODULE
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 212,400 | 97.2% |
LOAD_GLOBAL_MODULE | 3,420 | 1.6% |
STORE_FAST | 1,140 | 0.5% |
RESUME_CHECK | 1,140 | 0.5% |
LOAD_GLOBAL | 240 | 0.1% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 212,440 | 97.2% |
LOAD_GLOBAL_MODULE | 3,420 | 1.6% |
LOAD_FAST | 2,300 | 1.1% |
LOAD_ATTR_MODULE | 120 | 0.1% |
BINARY_OP | 60 | 0.0% |
Successors and predecessors for RESUME_CHECK
Predecessors | Count | Percentage |
---|---|---|
CALL_PY_EXACT_ARGS | 428,120 | 100.0% |
CALL | 60 | 0.0% |
CALL_FUNCTION_EX | 60 | 0.0% |
COPY_FREE_VARS | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST | 212,460 | 49.6% |
LOAD_FAST | 211,800 | 49.5% |
LOAD_GLOBAL_BUILTIN | 2,780 | 0.6% |
LOAD_GLOBAL_MODULE | 1,140 | 0.3% |
LOAD_DEREF | 60 | 0.0% |
Successors and predecessors for UNPACK_SEQUENCE_TWO_TUPLE
Predecessors | Count | Percentage |
---|---|---|
FOR_ITER | 212,760 | 50.1% |
LOAD_FAST | 211,760 | 49.9% |
UNPACK_SEQUENCE | 100 | 0.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST_STORE_FAST | 424,620 | 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. |
641,400 | 30.1% |
hit
ⓘSpecialized instructions that complete. |
1,485,160 | 69.8% |
miss
ⓘSpecialized instructions that deopt. |
2,240 | 0.1% |
Success | Count | Ratio |
---|---|---|
Success | 280 | 21.5% |
Failure | 1,020 | 78.5% |
Failure kind | Count | Ratio |
---|---|---|
add different types | 400 | 39.2% |
floor divide | 240 | 23.5% |
true divide different types | 240 | 23.5% |
multiply different types | 140 | 13.7% |
specialization stats for CALL family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
4,060 | 0.6% |
hit
ⓘSpecialized instructions that complete. |
644,700 | 99.3% |
miss
ⓘSpecialized instructions that deopt. |
3,700 | 0.6% |
Success | Count | Ratio |
---|---|---|
Success | 400 | 95.2% |
Failure | 20 | 4.8% |
Failure kind | Count | Ratio |
---|---|---|
class no vectorcall | 20 | 100.0% |
specialization stats for FOR_ITER family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
212,940 | 97.3% |
hit
ⓘSpecialized instructions that complete. |
5,520 | 2.5% |
Success | Count | Ratio |
---|---|---|
Success | 60 | 12.5% |
Failure | 420 | 87.5% |
Failure kind | Count | Ratio |
---|---|---|
enumerate | 360 | 85.7% |
zip | 60 | 14.3% |
specialization stats for LOAD_ATTR family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
60 | 20.0% |
hit
ⓘSpecialized instructions that complete. |
180 | 60.0% |
Success | Count | Ratio |
---|---|---|
Success | 60 | 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. |
400 | 0.1% |
hit
ⓘSpecialized instructions that complete. |
438,720 | 99.8% |
Success | Count | Ratio |
---|---|---|
Success | 400 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for UNPACK_SEQUENCE family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
100 | 0.0% |
hit
ⓘSpecialized instructions that complete. |
424,620 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 100 | 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. |
6,384,180 | 59.8% |
Not specialized
ⓘInstructions that could be specialized but aren't, e.g. |
855,780 | 8.0% |
Specialized hits
ⓘSpecialized instructions, e.g. |
3,427,380 | 32.1% |
Specialized misses
ⓘSpecialized instructions, e.g. |
5,940 | 0.1% |
Breakdown of deferred (not specialized) instruction counts by family
Name | Count | Ratio |
---|---|---|
BINARY_OP | 641,400 | 74.7% |
FOR_ITER | 212,940 | 24.8% |
CALL | 4,060 | 0.5% |
LOAD_GLOBAL | 400 | 0.0% |
UNPACK_SEQUENCE | 100 | 0.0% |
LOAD_ATTR | 60 | 0.0% |
BINARY_SLICE | 0 | 0.0% |
STORE_SLICE | 0 | 0.0% |
BINARY_SUBSCR | 0 | 0.0% |
GET_ITER | 0 | 0.0% |
Breakdown of misses (specialized deopts) instruction counts by family
Name | Count | Ratio |
---|---|---|
CALL_PY_EXACT_ARGS | 3,700 | 62.3% |
BINARY_OP_ADD_FLOAT | 2,240 | 37.7% |
GET_ITER | 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% |
BUILD_TUPLE | 0 | 0.0% |
CALL_FUNCTION_EX | 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 | 0 | 0.0% |
Calls to Python functions inlined | 54,500,960 | 100.0% |
Calls via PyEval_EvalFrame (total) | 0 | 0.0% |
Calls via PyEval_EvalFrame (vector) | 0 | 0.0% |
Calls via PyEval_EvalFrame (generator) | 0 | 0.0% |
Calls via PyEval_EvalFrame (legacy) | 0 | 0.0% |
Calls via PyEval_EvalFrame (function vectorcall) | 0 | 0.0% |
Calls via PyEval_EvalFrame (build class) | 0 | 0.0% |
Calls via PyEval_EvalFrame (slot) | 0 | 0.0% |
Calls via PyEval_EvalFrame (function ex) | 160 | 0.0% |
Calls via PyEval_EvalFrame (api) | 0 | 0.0% |
Calls via PyEval_EvalFrame (method) | 0 | 0.0% |
Frame objects created | 0 | 0.0% |
Frames pushed | 54,500,960 | 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 | 82,133,300 | 27.7% |
Frees to freelist | 82,136,560 | |
Allocations | 214,503,840 | 72.3% |
Allocations to 512 bytes | 214,500,460 | 72.3% |
Allocations to 4 kbytes | 3,380 | 0.0% |
Allocations over 4 kbytes | 0 | 0.0% |
Frees | 214,503,581 | |
Inline values | 0 | |
Interpreter increfs | 325,210,640 | 75.1% |
Interpreter decrefs | 674,686,700 | 92.4% |
Increfs | 108,081,520 | 24.9% |
Decrefs | 55,238,921 | 7.6% |
Materialize dict (on request) | 0 | |
Materialize dict (new key) | 0 | |
Materialize dict (too big) | 0 | |
Materialize dict (str subclass) | 0 | |
Method cache hits | 40 | |
Method cache misses | 20 | |
Method cache collisions | 20 | |
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. |
320 | |
Traces created
ⓘThe number of traces that were successfully created. |
160 | 50.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. |
40 | 12.5% |
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. |
160 | 50.0% |
Inner loop found
ⓘA trace is truncated because it has an inner loop |
80 | 25.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 |
1,043,640 | |
Uops executed
ⓘThe total number of uops (micro-operations) that were executed |
2,731,589,980 | 261,736.8% |
Count | Ratio | |
---|---|---|
Optimizer attempts
ⓘThe number of times the trace optimizer (_Py_uop_analyze_and_optimize) was run. |
160 | |
Optimizer successes
ⓘThe number of traces that were successfully optimized. |
120 | 75.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 | 12.5% |
<= 32 | 0 | 0.0% |
<= 64 | 20 | 12.5% |
<= 128 | 100 | 62.5% |
<= 256 | 20 | 12.5% |
optimized trace length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
<= 2 | 0 | 0.0% |
<= 4 | 0 | 0.0% |
<= 8 | 20 | 12.5% |
<= 16 | 0 | 0.0% |
<= 32 | 20 | 12.5% |
<= 64 | 40 | 25.0% |
<= 128 | 40 | 25.0% |
trace run length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
<= 2 | 0 | 0.0% |
<= 4 | 0 | 0.0% |
<= 8 | 5,180 | 0.5% |
<= 16 | 206,400 | 19.8% |
<= 32 | 0 | 0.0% |
<= 64 | 420 | 0.0% |
<= 128 | 204,160 | 19.6% |
<= 256 | 0 | 0.0% |
<= 512 | 0 | 0.0% |
<= 1,024 | 0 | 0.0% |
<= 2,048 | 0 | 0.0% |
<= 4,096 | 80 | 0.0% |
<= 8,192 | 416,000 | 39.9% |
uop execution stats
Name | Count | Self | Cumulative | Miss ratio |
---|---|---|---|---|
_BINARY_OP_ADD_INT | 269,337,600 | 9.9% | 9.9% | |
_SET_IP | 243,344,240 | 8.9% | 18.8% | |
_CHECK_VALIDITY | 188,648,820 | 6.9% | 25.7% | |
_LOAD_FAST_0 | 162,218,120 | 5.9% | 31.6% | |
_LOAD_FAST_1 | 162,013,960 | 5.9% | 37.5% | |
_LOAD_CONST_INLINE_BORROW | 161,806,720 | 5.9% | 43.5% | |
_BINARY_OP | 134,975,040 | 4.9% | 48.4% | |
_TIER2_RESUME_CHECK | 54,503,680 | 2.0% | 50.4% | |
_FOR_ITER_TIER_TWO | 54,293,600 | 2.0% | 52.4% | 0.8% |
_CHECK_FUNCTION_EXACT_ARGS | 54,279,340 | 2.0% | 54.4% | 0.4% |
_UNPACK_SEQUENCE_TWO_TUPLE | 54,081,680 | 2.0% | 56.4% | |
_RESUME_CHECK | 54,072,520 | 2.0% | 58.3% | |
_PUSH_FRAME | 54,072,520 | 2.0% | 60.3% | |
_SAVE_RETURN_OFFSET | 54,072,520 | 2.0% | 62.3% | |
_STORE_FAST_3 | 54,071,680 | 2.0% | 64.3% | |
_LOAD_CONST_INLINE_WITH_NULL | 53,869,200 | 2.0% | 66.2% | |
_LOAD_CONST_INLINE | 53,868,360 | 2.0% | 68.2% | |
_CHECK_STACK_SPACE_OPERAND | 53,867,940 | 2.0% | 70.2% | |
_INIT_CALL_PY_EXACT_ARGS_2 | 53,867,940 | 2.0% | 72.2% | |
_LOAD_FAST_4 | 53,867,940 | 2.0% | 74.1% | |
_STORE_FAST_5 | 53,867,940 | 2.0% | 76.1% | |
_BINARY_OP_MULTIPLY_INT | 53,867,520 | 2.0% | 78.1% | |
_GUARD_BOTH_INT | 53,867,520 | 2.0% | 80.1% | |
_GUARD_NOS_INT | 53,867,520 | 2.0% | 82.0% | |
_LOAD_FAST_3 | 53,867,520 | 2.0% | 84.0% | |
_LOAD_FAST_5 | 53,867,520 | 2.0% | 86.0% | |
_POP_FRAME | 53,867,520 | 2.0% | 87.9% | |
_STORE_FAST_4 | 53,867,520 | 2.0% | 89.9% | |
_BINARY_OP_ADD_FLOAT | 53,683,360 | 2.0% | 91.9% | |
_GUARD_BOTH_FLOAT | 53,673,360 | 2.0% | 93.8% | |
_JUMP_TO_TOP | 53,673,360 | 2.0% | 95.8% | |
_CHECK_FUNCTION | 53,663,780 | 2.0% | 97.8% | |
_BINARY_OP_MULTIPLY_FLOAT | 26,851,680 | 1.0% | 98.8% | |
_GUARD_NOS_FLOAT | 26,851,680 | 1.0% | 99.7% | |
_START_EXECUTOR | 832,240 | 0.0% | 99.8% | |
_STORE_FAST_2 | 617,060 | 0.0% | 99.8% | |
_LOAD_FAST_2 | 615,140 | 0.0% | 99.8% | |
_CHECK_VALIDITY_AND_SET_IP | 613,740 | 0.0% | 99.8% | |
_EXIT_TRACE | 416,160 | 0.0% | 99.9% | |
_DEOPT | 416,080 | 0.0% | 99.9% | |
_GUARD_NOT_EXHAUSTED_RANGE | 414,660 | 0.0% | 99.9% | 0.8% |
_ITER_CHECK_RANGE | 414,660 | 0.0% | 99.9% | |
_ITER_NEXT_RANGE | 411,400 | 0.0% | 99.9% | |
_PUSH_NULL | 410,980 | 0.0% | 99.9% | |
_BUILD_TUPLE | 410,980 | 0.0% | 99.9% | |
_COLD_EXIT | 211,400 | 0.0% | 100.0% | |
_CALL_BUILTIN_CLASS | 205,000 | 0.0% | 100.0% | |
_CHECK_PERIODIC | 205,000 | 0.0% | 100.0% | |
_LOAD_CONST_INLINE_BORROW_WITH_NULL | 205,000 | 0.0% | 100.0% | |
_GET_ITER | 204,580 | 0.0% | 100.0% | |
_INIT_CALL_PY_EXACT_ARGS_1 | 204,580 | 0.0% | 100.0% | |
_STORE_FAST_1 | 204,160 | 0.0% | 100.0% | |
_LOAD_FAST | 50,000 | 0.0% | 100.0% | |
_STORE_FAST | 30,000 | 0.0% | 100.0% | |
_LOAD_FAST_7 | 10,000 | 0.0% | 100.0% | |
_STORE_FAST_7 | 10,000 | 0.0% | 100.0% | |
_SWAP | 2,760 | 0.0% | 100.0% | |
_POP_TOP | 1,920 | 0.0% | 100.0% | |
_BUILD_LIST | 420 | 0.0% | 100.0% | |
_LOAD_FAST_AND_CLEAR | 420 | 0.0% | 100.0% | |
_CALL_LEN | 420 | 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 |
---|---|---|---|
_SET_IP _BINARY_OP | 134,770,880 | 4.9% | 4.9% |
_BINARY_OP _CHECK_VALIDITY | 134,770,880 | 4.9% | 9.9% |
_BINARY_OP_ADD_INT _LOAD_CONST_INLINE_BORROW | 107,735,040 | 3.9% | 13.8% |
_LOAD_CONST_INLINE_BORROW _BINARY_OP_ADD_INT | 107,735,040 | 3.9% | 17.8% |
_LOAD_FAST_0 _LOAD_FAST_1 | 107,735,040 | 3.9% | 21.7% |
_SET_IP _CHECK_FUNCTION_EXACT_ARGS | 54,279,340 | 2.0% | 23.7% |
_SET_IP _FOR_ITER_TIER_TWO | 54,089,440 | 2.0% | 25.7% |
_TIER2_RESUME_CHECK _SET_IP | 54,089,440 | 2.0% | 27.6% |
_PUSH_FRAME _RESUME_CHECK | 54,072,520 | 2.0% | 29.6% |
_SAVE_RETURN_OFFSET _PUSH_FRAME | 54,072,520 | 2.0% | 31.6% |
_CHECK_VALIDITY _UNPACK_SEQUENCE_TWO_TUPLE | 53,877,520 | 2.0% | 33.6% |
_FOR_ITER_TIER_TWO _CHECK_VALIDITY | 53,877,520 | 2.0% | 35.6% |
_CHECK_FUNCTION_EXACT_ARGS _CHECK_STACK_SPACE_OPERAND | 53,867,940 | 2.0% | 37.5% |
_INIT_CALL_PY_EXACT_ARGS_2 _SAVE_RETURN_OFFSET | 53,867,940 | 2.0% | 39.5% |
_LOAD_CONST_INLINE _LOAD_FAST_0 | 53,867,940 | 2.0% | 41.5% |
_RESUME_CHECK _LOAD_CONST_INLINE | 53,867,520 | 2.0% | 43.4% |
_UNPACK_SEQUENCE_TWO_TUPLE _STORE_FAST_4 | 53,867,520 | 2.0% | 45.4% |
_BINARY_OP_ADD_INT _SET_IP | 53,867,520 | 2.0% | 47.4% |
_BINARY_OP_ADD_INT _BINARY_OP_MULTIPLY_INT | 53,867,520 | 2.0% | 49.4% |
_BINARY_OP_ADD_INT _LOAD_FAST_0 | 53,867,520 | 2.0% | 51.3% |
_BINARY_OP_MULTIPLY_INT _LOAD_CONST_INLINE_BORROW | 53,867,520 | 2.0% | 53.3% |
_CHECK_VALIDITY _LOAD_FAST_0 | 53,867,520 | 2.0% | 55.3% |
_CHECK_VALIDITY _POP_FRAME | 53,867,520 | 2.0% | 57.2% |
_GUARD_BOTH_INT _BINARY_OP_ADD_INT | 53,867,520 | 2.0% | 59.2% |
_GUARD_NOS_INT _BINARY_OP_ADD_INT | 53,867,520 | 2.0% | 61.2% |
_LOAD_CONST_INLINE_BORROW _SET_IP | 53,867,520 | 2.0% | 63.2% |
_LOAD_FAST_0 _GUARD_NOS_INT | 53,867,520 | 2.0% | 65.1% |
_LOAD_FAST_1 _BINARY_OP_ADD_INT | 53,867,520 | 2.0% | 67.1% |
_LOAD_FAST_1 _GUARD_BOTH_INT | 53,867,520 | 2.0% | 69.1% |
_POP_FRAME _LOAD_FAST_5 | 53,867,520 | 2.0% | 71.0% |
_STORE_FAST_4 _STORE_FAST_5 | 53,867,520 | 2.0% | 73.0% |
_STORE_FAST_5 _LOAD_FAST_3 | 53,867,520 | 2.0% | 75.0% |
_JUMP_TO_TOP _TIER2_RESUME_CHECK | 53,673,360 | 2.0% | 77.0% |
_CHECK_FUNCTION _LOAD_CONST_INLINE_WITH_NULL | 53,663,780 | 2.0% | 78.9% |
_BINARY_OP_ADD_FLOAT _STORE_FAST_3 | 53,663,360 | 2.0% | 80.9% |
_CHECK_STACK_SPACE_OPERAND _INIT_CALL_PY_EXACT_ARGS_2 | 53,663,360 | 2.0% | 82.8% |
_LOAD_FAST_3 _CHECK_FUNCTION | 53,663,360 | 2.0% | 84.8% |
_STORE_FAST_3 _JUMP_TO_TOP | 53,663,360 | 2.0% | 86.8% |
_LOAD_FAST_4 _SET_IP | 27,036,260 | 1.0% | 87.8% |
_LOAD_CONST_INLINE_WITH_NULL _LOAD_FAST_1 | 27,035,840 | 1.0% | 88.8% |
_LOAD_FAST_1 _LOAD_FAST_4 | 27,035,840 | 1.0% | 89.7% |
_LOAD_FAST_5 _SET_IP | 27,035,840 | 1.0% | 90.7% |
_BINARY_OP_MULTIPLY_FLOAT _GUARD_NOS_FLOAT | 26,851,680 | 1.0% | 91.7% |
_GUARD_NOS_FLOAT _BINARY_OP_ADD_FLOAT | 26,851,680 | 1.0% | 92.7% |
_GUARD_BOTH_FLOAT _BINARY_OP_MULTIPLY_FLOAT | 26,841,680 | 1.0% | 93.7% |
_LOAD_CONST_INLINE_WITH_NULL _LOAD_FAST_4 | 26,832,100 | 1.0% | 94.7% |
_LOAD_FAST_1 _SET_IP | 26,832,100 | 1.0% | 95.7% |
_CHECK_VALIDITY _GUARD_BOTH_FLOAT | 26,831,680 | 1.0% | 96.6% |
_GUARD_BOTH_FLOAT _BINARY_OP_ADD_FLOAT | 26,831,680 | 1.0% | 97.6% |
_LOAD_FAST_4 _LOAD_FAST_1 | 26,831,680 | 1.0% | 98.6% |
_LOAD_FAST_5 _GUARD_BOTH_FLOAT | 26,831,680 | 1.0% | 99.6% |
_START_EXECUTOR _TIER2_RESUME_CHECK | 830,320 | 0.0% | 99.6% |
_FOR_ITER_TIER_TWO _DEOPT | 416,080 | 0.0% | 99.6% |
_ITER_CHECK_RANGE _GUARD_NOT_EXHAUSTED_RANGE | 414,660 | 0.0% | 99.6% |
_TIER2_RESUME_CHECK _ITER_CHECK_RANGE | 414,240 | 0.0% | 99.7% |
_GUARD_NOT_EXHAUSTED_RANGE _ITER_NEXT_RANGE | 411,400 | 0.0% | 99.7% |
_PUSH_NULL _LOAD_FAST_2 | 410,980 | 0.0% | 99.7% |
_BUILD_TUPLE _SET_IP | 410,980 | 0.0% | 99.7% |
_ITER_NEXT_RANGE _STORE_FAST_2 | 410,980 | 0.0% | 99.7% |
_LOAD_FAST_0 _PUSH_NULL | 410,980 | 0.0% | 99.7% |
_LOAD_FAST_1 _BUILD_TUPLE | 410,980 | 0.0% | 99.7% |
_LOAD_FAST_2 _LOAD_FAST_1 | 410,980 | 0.0% | 99.8% |
_STORE_FAST_2 _LOAD_FAST_0 | 410,980 | 0.0% | 99.8% |
_CHECK_FUNCTION_EXACT_ARGS _EXIT_TRACE | 206,820 | 0.0% | 99.8% |
_CALL_BUILTIN_CLASS _CHECK_PERIODIC | 205,000 | 0.0% | 99.8% |
_CHECK_PERIODIC _CHECK_VALIDITY_AND_SET_IP | 205,000 | 0.0% | 99.8% |
_SET_IP _CALL_BUILTIN_CLASS | 204,580 | 0.0% | 99.8% |
_CHECK_FUNCTION_EXACT_ARGS _INIT_CALL_PY_EXACT_ARGS_2 | 204,580 | 0.0% | 99.8% |
_CHECK_STACK_SPACE_OPERAND _INIT_CALL_PY_EXACT_ARGS_1 | 204,580 | 0.0% | 99.8% |
_CHECK_VALIDITY_AND_SET_IP _GET_ITER | 204,580 | 0.0% | 99.8% |
_INIT_CALL_PY_EXACT_ARGS_1 _SAVE_RETURN_OFFSET | 204,580 | 0.0% | 99.8% |
_GET_ITER _CHECK_VALIDITY_AND_SET_IP | 204,160 | 0.0% | 99.8% |
_RESUME_CHECK _LOAD_FAST_0 | 204,160 | 0.0% | 99.9% |
_UNPACK_SEQUENCE_TWO_TUPLE _STORE_FAST_1 | 204,160 | 0.0% | 99.9% |
_BINARY_OP _CHECK_VALIDITY_AND_SET_IP | 204,160 | 0.0% | 99.9% |
_CHECK_VALIDITY _STORE_FAST_3 | 204,160 | 0.0% | 99.9% |
_CHECK_VALIDITY_AND_SET_IP _BINARY_OP | 204,160 | 0.0% | 99.9% |
_CHECK_VALIDITY_AND_SET_IP _FOR_ITER_TIER_TWO | 204,160 | 0.0% | 99.9% |
_LOAD_CONST_INLINE_BORROW _STORE_FAST_3 | 204,160 | 0.0% | 99.9% |
_LOAD_CONST_INLINE_BORROW_WITH_NULL _LOAD_FAST_2 | 204,160 | 0.0% | 99.9% |
_LOAD_FAST_0 _UNPACK_SEQUENCE_TWO_TUPLE | 204,160 | 0.0% | 99.9% |
_LOAD_FAST_2 _SET_IP | 204,160 | 0.0% | 99.9% |
_LOAD_FAST_3 _LOAD_CONST_INLINE_WITH_NULL | 204,160 | 0.0% | 99.9% |
_STORE_FAST_1 _STORE_FAST_2 | 204,160 | 0.0% | 99.9% |
_STORE_FAST_2 _LOAD_CONST_INLINE_BORROW | 204,160 | 0.0% | 99.9% |
_STORE_FAST_3 _EXIT_TRACE | 204,160 | 0.0% | 99.9% |
_STORE_FAST_3 _LOAD_CONST_INLINE_BORROW_WITH_NULL | 204,160 | 0.0% | 100.0% |
_LOAD_FAST _LOAD_FAST | 30,000 | 0.0% | 100.0% |
_UNPACK_SEQUENCE_TWO_TUPLE _STORE_FAST | 10,000 | 0.0% | 100.0% |
_BINARY_OP_ADD_FLOAT _STORE_FAST | 10,000 | 0.0% | 100.0% |
_BINARY_OP_ADD_FLOAT _STORE_FAST_7 | 10,000 | 0.0% | 100.0% |
_LOAD_FAST _BINARY_OP_MULTIPLY_FLOAT | 10,000 | 0.0% | 100.0% |
_LOAD_FAST _GUARD_BOTH_FLOAT | 10,000 | 0.0% | 100.0% |
_LOAD_FAST_7 _LOAD_FAST | 10,000 | 0.0% | 100.0% |
_STORE_FAST _JUMP_TO_TOP | 10,000 | 0.0% | 100.0% |
_STORE_FAST _LOAD_FAST_7 | 10,000 | 0.0% | 100.0% |
_STORE_FAST _STORE_FAST | 10,000 | 0.0% | 100.0% |
_STORE_FAST_7 _LOAD_FAST | 10,000 | 0.0% | 100.0% |
_GUARD_NOT_EXHAUSTED_RANGE _EXIT_TRACE | 3,260 | 0.0% | 100.0% |
_POP_TOP _SWAP | 1,920 | 0.0% | 100.0% |
unsupported opcodes
Opcode | Count |
---|---|
CALL | 140 |
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