- benchmark: nbody
- 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 |
---|---|---|---|---|
ENTER_EXECUTOR | 3,204,400 | 48.3% | 48.3% | |
POP_TOP | 3,202,600 | 48.3% | 96.6% | |
LOAD_FAST | 45,320 | 0.7% | 97.3% | |
STORE_FAST | 23,480 | 0.4% | 97.7% | |
BINARY_OP_MULTIPLY_FLOAT | 19,340 | 0.3% | 97.9% | |
COPY | 18,720 | 0.3% | 98.2% | |
SWAP | 18,720 | 0.3% | 98.5% | |
LOAD_CONST | 11,740 | 0.2% | 98.7% | |
BINARY_OP_ADD_FLOAT | 11,300 | 0.2% | 98.9% | |
STORE_SUBSCR_LIST_INT | 9,360 | 0.1% | 99.0% | |
BINARY_SUBSCR_LIST_INT | 9,180 | 0.1% | 99.1% | |
LOAD_FAST_LOAD_FAST | 8,720 | 0.1% | 99.3% | |
BINARY_OP_SUBTRACT_FLOAT | 7,980 | 0.1% | 99.4% | |
STORE_FAST_STORE_FAST | 6,360 | 0.1% | 99.5% | |
BINARY_OP | 5,340 | 0.1% | 99.6% | |
UNPACK_SEQUENCE_TUPLE | 5,200 | 0.1% | 99.6% | |
UNPACK_SEQUENCE_LIST | 5,140 | 0.1% | 99.7% | |
FOR_ITER_LIST | 4,000 | 0.1% | 99.8% | |
GET_ITER | 2,740 | 0.0% | 99.8% | |
JUMP_BACKWARD | 2,200 | 0.0% | 99.9% | |
UNPACK_SEQUENCE_TWO_TUPLE | 1,360 | 0.0% | 99.9% | |
LOAD_GLOBAL_MODULE | 720 | 0.0% | 99.9% | |
UNPACK_SEQUENCE | 680 | 0.0% | 99.9% | |
FOR_ITER_RANGE | 680 | 0.0% | 99.9% | |
RESUME_CHECK | 620 | 0.0% | 99.9% | |
RETURN_VALUE | 480 | 0.0% | 99.9% | |
STORE_SUBSCR | 480 | 0.0% | 99.9% | |
CALL_PY_GENERAL | 480 | 0.0% | 99.9% | |
BINARY_SUBSCR | 400 | 0.0% | 99.9% | |
PUSH_NULL | 400 | 0.0% | 100.0% | |
LOAD_GLOBAL | 400 | 0.0% | 100.0% | |
CALL | 360 | 0.0% | 100.0% | |
FOR_ITER | 280 | 0.0% | 100.0% | |
LOAD_DEREF | 240 | 0.0% | 100.0% | |
RETURN_CONST | 240 | 0.0% | 100.0% | |
CALL_BUILTIN_CLASS | 200 | 0.0% | 100.0% | |
LOAD_GLOBAL_BUILTIN | 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% | |
LOAD_ATTR | 120 | 0.0% | 100.0% | |
RESUME | 100 | 0.0% | 100.0% | |
NOP | 80 | 0.0% | 100.0% | |
BUILD_LIST | 80 | 0.0% | 100.0% | |
CALL_INTRINSIC_1 | 80 | 0.0% | 100.0% | |
COPY_FREE_VARS | 80 | 0.0% | 100.0% | |
LIST_EXTEND | 80 | 0.0% | 100.0% | |
BINARY_SUBSCR_DICT | 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 |
---|---|---|---|
ENTER_EXECUTOR POP_TOP | 3,201,860 | 48.3% | 48.3% |
POP_TOP ENTER_EXECUTOR | 3,199,660 | 48.3% | 96.5% |
LOAD_FAST BINARY_OP_MULTIPLY_FLOAT | 15,800 | 0.2% | 96.8% |
LOAD_FAST LOAD_FAST | 15,380 | 0.2% | 97.0% |
BINARY_OP_MULTIPLY_FLOAT BINARY_OP_ADD_FLOAT | 10,500 | 0.2% | 97.2% |
LOAD_FAST LOAD_CONST | 9,600 | 0.1% | 97.3% |
COPY COPY | 9,360 | 0.1% | 97.4% |
LOAD_CONST COPY | 9,360 | 0.1% | 97.6% |
SWAP SWAP | 9,360 | 0.1% | 97.7% |
BINARY_SUBSCR_LIST_INT LOAD_FAST | 9,180 | 0.1% | 97.9% |
COPY BINARY_SUBSCR_LIST_INT | 9,000 | 0.1% | 98.0% |
SWAP STORE_SUBSCR_LIST_INT | 9,000 | 0.1% | 98.1% |
BINARY_OP_ADD_FLOAT SWAP | 6,900 | 0.1% | 98.2% |
STORE_SUBSCR_LIST_INT LOAD_FAST | 6,880 | 0.1% | 98.3% |
STORE_FAST STORE_FAST | 6,420 | 0.1% | 98.4% |
STORE_FAST LOAD_FAST_LOAD_FAST | 6,360 | 0.1% | 98.5% |
BINARY_OP_SUBTRACT_FLOAT STORE_FAST | 5,640 | 0.1% | 98.6% |
STORE_FAST LOAD_FAST | 5,040 | 0.1% | 98.7% |
LOAD_FAST_LOAD_FAST BINARY_OP_SUBTRACT_FLOAT | 3,960 | 0.1% | 98.8% |
STORE_FAST_STORE_FAST STORE_FAST_STORE_FAST | 3,140 | 0.0% | 98.8% |
BINARY_OP_MULTIPLY_FLOAT BINARY_OP_SUBTRACT_FLOAT | 3,120 | 0.0% | 98.9% |
UNPACK_SEQUENCE_LIST STORE_FAST_STORE_FAST | 3,040 | 0.0% | 98.9% |
STORE_FAST_STORE_FAST STORE_FAST | 2,880 | 0.0% | 98.9% |
UNPACK_SEQUENCE_TUPLE UNPACK_SEQUENCE_LIST | 2,640 | 0.0% | 99.0% |
LOAD_FAST GET_ITER | 2,580 | 0.0% | 99.0% |
ENTER_EXECUTOR ENTER_EXECUTOR | 2,540 | 0.0% | 99.1% |
LOAD_FAST_LOAD_FAST LOAD_FAST | 2,420 | 0.0% | 99.1% |
UNPACK_SEQUENCE_TUPLE STORE_FAST | 2,420 | 0.0% | 99.1% |
GET_ITER FOR_ITER_LIST | 2,400 | 0.0% | 99.2% |
STORE_FAST UNPACK_SEQUENCE_LIST | 2,360 | 0.0% | 99.2% |
FOR_ITER_LIST UNPACK_SEQUENCE_TUPLE | 2,360 | 0.0% | 99.2% |
BINARY_OP_MULTIPLY_FLOAT STORE_FAST | 2,280 | 0.0% | 99.3% |
BINARY_OP_SUBTRACT_FLOAT SWAP | 2,280 | 0.0% | 99.3% |
UNPACK_SEQUENCE_LIST STORE_FAST | 2,100 | 0.0% | 99.3% |
LOAD_CONST BINARY_OP | 1,980 | 0.0% | 99.4% |
POP_TOP LOAD_FAST | 1,860 | 0.0% | 99.4% |
LOAD_FAST_LOAD_FAST BINARY_OP_MULTIPLY_FLOAT | 1,740 | 0.0% | 99.4% |
STORE_SUBSCR_LIST_INT ENTER_EXECUTOR | 1,660 | 0.0% | 99.5% |
BINARY_OP BINARY_OP | 1,500 | 0.0% | 99.5% |
JUMP_BACKWARD FOR_ITER_LIST | 1,500 | 0.0% | 99.5% |
BINARY_OP_ADD_FLOAT LOAD_CONST | 1,360 | 0.0% | 99.5% |
STORE_FAST UNPACK_SEQUENCE_TUPLE | 1,320 | 0.0% | 99.5% |
BINARY_OP_ADD_FLOAT LOAD_FAST | 1,320 | 0.0% | 99.6% |
BINARY_OP_MULTIPLY_FLOAT LOAD_FAST | 1,320 | 0.0% | 99.6% |
FOR_ITER_LIST UNPACK_SEQUENCE_TWO_TUPLE | 1,320 | 0.0% | 99.6% |
UNPACK_SEQUENCE_TWO_TUPLE UNPACK_SEQUENCE_TUPLE | 1,320 | 0.0% | 99.6% |
BINARY_OP BINARY_OP_MULTIPLY_FLOAT | 1,260 | 0.0% | 99.6% |
BINARY_OP_MULTIPLY_FLOAT LOAD_FAST_LOAD_FAST | 1,200 | 0.0% | 99.7% |
STORE_FAST JUMP_BACKWARD | 1,020 | 0.0% | 99.7% |
LOAD_FAST BINARY_OP | 880 | 0.0% | 99.7% |
BINARY_OP BINARY_OP_SUBTRACT_FLOAT | 860 | 0.0% | 99.7% |
BINARY_OP BINARY_OP_ADD_FLOAT | 800 | 0.0% | 99.7% |
STORE_SUBSCR_LIST_INT JUMP_BACKWARD | 640 | 0.0% | 99.7% |
LOAD_FAST_LOAD_FAST BINARY_OP | 600 | 0.0% | 99.7% |
BINARY_OP_ADD_FLOAT LOAD_FAST_LOAD_FAST | 600 | 0.0% | 99.7% |
FOR_ITER_RANGE STORE_FAST | 600 | 0.0% | 99.7% |
BINARY_OP_ADD_FLOAT STORE_FAST | 560 | 0.0% | 99.8% |
BINARY_OP_MULTIPLY_FLOAT LOAD_CONST | 560 | 0.0% | 99.8% |
BINARY_OP_ADD_FLOAT BINARY_OP_MULTIPLY_FLOAT | 540 | 0.0% | 99.8% |
STORE_FAST ENTER_EXECUTOR | 520 | 0.0% | 99.8% |
CALL_PY_GENERAL RESUME_CHECK | 480 | 0.0% | 99.8% |
POP_TOP JUMP_BACKWARD | 440 | 0.0% | 99.8% |
JUMP_BACKWARD FOR_ITER_RANGE | 440 | 0.0% | 99.8% |
COPY BINARY_SUBSCR | 360 | 0.0% | 99.8% |
SWAP STORE_SUBSCR | 360 | 0.0% | 99.8% |
BINARY_OP_MULTIPLY_FLOAT BINARY_OP | 360 | 0.0% | 99.8% |
RESUME_CHECK LOAD_FAST | 360 | 0.0% | 99.8% |
STORE_FAST_STORE_FAST LOAD_FAST_LOAD_FAST | 340 | 0.0% | 99.8% |
RETURN_VALUE POP_TOP | 320 | 0.0% | 99.8% |
BINARY_OP LOAD_FAST | 320 | 0.0% | 99.8% |
LOAD_FAST RETURN_VALUE | 320 | 0.0% | 99.8% |
BINARY_OP STORE_FAST | 280 | 0.0% | 99.8% |
POP_TOP LOAD_GLOBAL_MODULE | 240 | 0.0% | 99.8% |
STORE_SUBSCR STORE_SUBSCR_LIST_INT | 240 | 0.0% | 99.9% |
RETURN_CONST POP_TOP | 240 | 0.0% | 99.9% |
LOAD_GLOBAL_MODULE CALL_PY_GENERAL | 240 | 0.0% | 99.9% |
GET_ITER FOR_ITER_RANGE | 200 | 0.0% | 99.9% |
STORE_FAST UNPACK_SEQUENCE | 200 | 0.0% | 99.9% |
LOAD_GLOBAL_BUILTIN LOAD_FAST | 200 | 0.0% | 99.9% |
BINARY_SUBSCR LOAD_FAST | 180 | 0.0% | 99.9% |
BINARY_SUBSCR BINARY_SUBSCR_LIST_INT | 180 | 0.0% | 99.9% |
BINARY_OP SWAP | 180 | 0.0% | 99.9% |
LOAD_ATTR_MODULE PUSH_NULL | 180 | 0.0% | 99.9% |
POP_TOP RETURN_CONST | 160 | 0.0% | 99.9% |
PUSH_NULL LOAD_FAST | 160 | 0.0% | 99.9% |
LOAD_CONST LOAD_FAST | 160 | 0.0% | 99.9% |
LOAD_DEREF PUSH_NULL | 160 | 0.0% | 99.9% |
LOAD_FAST CALL_BUILTIN_CLASS | 160 | 0.0% | 99.9% |
LOAD_GLOBAL LOAD_GLOBAL_MODULE | 160 | 0.0% | 99.9% |
STORE_FAST LOAD_GLOBAL_MODULE | 160 | 0.0% | 99.9% |
UNPACK_SEQUENCE UNPACK_SEQUENCE_TUPLE | 160 | 0.0% | 99.9% |
FOR_ITER_LIST LOAD_FAST | 160 | 0.0% | 99.9% |
GET_ITER FOR_ITER | 140 | 0.0% | 99.9% |
STORE_SUBSCR LOAD_FAST | 140 | 0.0% | 99.9% |
JUMP_BACKWARD FOR_ITER | 140 | 0.0% | 99.9% |
UNPACK_SEQUENCE UNPACK_SEQUENCE_LIST | 140 | 0.0% | 99.9% |
CALL_BUILTIN_CLASS GET_ITER | 140 | 0.0% | 99.9% |
LOAD_GLOBAL_MODULE LOAD_CONST | 140 | 0.0% | 99.9% |
POP_TOP LOAD_GLOBAL | 120 | 0.0% | 99.9% |
PUSH_NULL CALL | 120 | 0.0% | 99.9% |
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_SUBSCR
Predecessors | Count | Percentage |
---|---|---|
COPY | 360 | 90.0% |
LOAD_FAST | 40 | 10.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 180 | 45.0% |
BINARY_SUBSCR_LIST_INT | 180 | 45.0% |
CALL | 20 | 5.0% |
BINARY_SUBSCR_DICT | 20 | 5.0% |
Successors and predecessors for GET_ITER
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 2,580 | 94.2% |
CALL_BUILTIN_CLASS | 140 | 5.1% |
CALL | 20 | 0.7% |
Successors | Count | Percentage |
---|---|---|
FOR_ITER_LIST | 2,400 | 87.6% |
FOR_ITER_RANGE | 200 | 7.3% |
FOR_ITER | 140 | 5.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 | 3,201,860 | 100.0% |
RETURN_VALUE | 320 | 0.0% |
RETURN_CONST | 240 | 0.0% |
JUMP_BACKWARD | 100 | 0.0% |
CALL_NON_PY_GENERAL | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
ENTER_EXECUTOR | 3,199,660 | 99.9% |
LOAD_FAST | 1,860 | 0.1% |
JUMP_BACKWARD | 440 | 0.0% |
LOAD_GLOBAL_MODULE | 240 | 0.0% |
RETURN_CONST | 160 | 0.0% |
Successors and predecessors for PUSH_NULL
Predecessors | Count | Percentage |
---|---|---|
LOAD_ATTR_MODULE | 180 | 45.0% |
LOAD_DEREF | 160 | 40.0% |
LOAD_ATTR | 60 | 15.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 160 | 40.0% |
CALL | 120 | 30.0% |
CALL_NON_PY_GENERAL | 120 | 30.0% |
Successors and predecessors for RETURN_VALUE
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 320 | 66.7% |
RETURN_VALUE | 80 | 16.7% |
BINARY_OP_SUBTRACT_FLOAT | 60 | 12.5% |
BINARY_OP | 20 | 4.2% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 320 | 66.7% |
RETURN_VALUE | 80 | 16.7% |
LOAD_GLOBAL | 40 | 8.3% |
LOAD_GLOBAL_MODULE | 40 | 8.3% |
Successors and predecessors for STORE_SUBSCR
Predecessors | Count | Percentage |
---|---|---|
SWAP | 360 | 75.0% |
LOAD_CONST | 120 | 25.0% |
Successors | Count | Percentage |
---|---|---|
STORE_SUBSCR_LIST_INT | 240 | 50.0% |
LOAD_FAST | 140 | 29.2% |
JUMP_BACKWARD | 40 | 8.3% |
LOAD_FAST_LOAD_FAST | 40 | 8.3% |
RETURN_CONST | 20 | 4.2% |
Successors and predecessors for BINARY_OP
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 1,980 | 37.1% |
BINARY_OP | 1,500 | 28.1% |
LOAD_FAST | 880 | 16.5% |
LOAD_FAST_LOAD_FAST | 600 | 11.2% |
BINARY_OP_MULTIPLY_FLOAT | 360 | 6.7% |
Successors | Count | Percentage |
---|---|---|
BINARY_OP | 1,500 | 28.1% |
BINARY_OP_MULTIPLY_FLOAT | 1,260 | 23.6% |
BINARY_OP_SUBTRACT_FLOAT | 860 | 16.1% |
BINARY_OP_ADD_FLOAT | 800 | 15.0% |
LOAD_FAST | 320 | 6.0% |
Successors and predecessors for BUILD_LIST
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 80 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_DEREF | 80 | 100.0% |
Successors and predecessors for CALL
Predecessors | Count | Percentage |
---|---|---|
PUSH_NULL | 120 | 33.3% |
LOAD_FAST | 120 | 33.3% |
LOAD_GLOBAL | 40 | 11.1% |
LOAD_GLOBAL_MODULE | 40 | 11.1% |
BINARY_SUBSCR | 20 | 5.6% |
Successors | Count | Percentage |
---|---|---|
CALL_PY_GENERAL | 80 | 22.2% |
RESUME | 60 | 16.7% |
CALL_NON_PY_GENERAL | 60 | 16.7% |
STORE_FAST | 40 | 11.1% |
CALL_BUILTIN_CLASS | 40 | 11.1% |
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 |
---|---|---|
COPY | 9,360 | 50.0% |
LOAD_CONST | 9,360 | 50.0% |
Successors | Count | Percentage |
---|---|---|
COPY | 9,360 | 50.0% |
BINARY_SUBSCR_LIST_INT | 9,000 | 48.1% |
BINARY_SUBSCR | 360 | 1.9% |
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 |
---|---|---|
POP_TOP | 3,199,660 | 99.9% |
ENTER_EXECUTOR | 2,540 | 0.1% |
STORE_SUBSCR_LIST_INT | 1,660 | 0.1% |
STORE_FAST | 520 | 0.0% |
JUMP_BACKWARD | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 3,201,860 | 99.9% |
ENTER_EXECUTOR | 2,540 | 0.1% |
Successors and predecessors for FOR_ITER
Predecessors | Count | Percentage |
---|---|---|
GET_ITER | 140 | 50.0% |
JUMP_BACKWARD | 140 | 50.0% |
Successors | Count | Percentage |
---|---|---|
UNPACK_SEQUENCE | 100 | 35.7% |
FOR_ITER_LIST | 100 | 35.7% |
STORE_FAST | 40 | 14.3% |
FOR_ITER_RANGE | 40 | 14.3% |
Successors and predecessors for JUMP_BACKWARD
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 1,020 | 46.4% |
STORE_SUBSCR_LIST_INT | 640 | 29.1% |
POP_TOP | 440 | 20.0% |
FOR_ITER_LIST | 60 | 2.7% |
STORE_SUBSCR | 40 | 1.8% |
Successors | Count | Percentage |
---|---|---|
FOR_ITER_LIST | 1,500 | 68.2% |
FOR_ITER_RANGE | 440 | 20.0% |
FOR_ITER | 140 | 6.4% |
POP_TOP | 100 | 4.5% |
ENTER_EXECUTOR | 20 | 0.9% |
Successors and predecessors for LIST_EXTEND
Predecessors | Count | Percentage |
---|---|---|
LOAD_DEREF | 80 | 100.0% |
Successors | Count | Percentage |
---|---|---|
CALL_INTRINSIC_1 | 80 | 100.0% |
Successors and predecessors for LOAD_ATTR
Predecessors | Count | Percentage |
---|---|---|
LOAD_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 |
---|---|---|
LOAD_FAST | 9,600 | 81.8% |
BINARY_OP_ADD_FLOAT | 1,360 | 11.6% |
BINARY_OP_MULTIPLY_FLOAT | 560 | 4.8% |
LOAD_GLOBAL_MODULE | 140 | 1.2% |
BINARY_OP | 60 | 0.5% |
Successors | Count | Percentage |
---|---|---|
COPY | 9,360 | 79.7% |
BINARY_OP | 1,980 | 16.9% |
LOAD_FAST | 160 | 1.4% |
STORE_SUBSCR | 120 | 1.0% |
STORE_SUBSCR_LIST_INT | 120 | 1.0% |
Successors and predecessors for LOAD_DEREF
Predecessors | Count | Percentage |
---|---|---|
NOP | 80 | 33.3% |
BUILD_LIST | 80 | 33.3% |
RESUME_CHECK | 60 | 25.0% |
RESUME | 20 | 8.3% |
Successors | Count | Percentage |
---|---|---|
PUSH_NULL | 160 | 66.7% |
LIST_EXTEND | 80 | 33.3% |
Successors and predecessors for LOAD_FAST
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 15,380 | 33.9% |
BINARY_SUBSCR_LIST_INT | 9,180 | 20.3% |
STORE_SUBSCR_LIST_INT | 6,880 | 15.2% |
STORE_FAST | 5,040 | 11.1% |
LOAD_FAST_LOAD_FAST | 2,420 | 5.3% |
Successors | Count | Percentage |
---|---|---|
BINARY_OP_MULTIPLY_FLOAT | 15,800 | 34.9% |
LOAD_FAST | 15,380 | 33.9% |
LOAD_CONST | 9,600 | 21.2% |
GET_ITER | 2,580 | 5.7% |
BINARY_OP | 880 | 1.9% |
Successors and predecessors for LOAD_FAST_LOAD_FAST
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 6,360 | 72.9% |
BINARY_OP_MULTIPLY_FLOAT | 1,200 | 13.8% |
BINARY_OP_ADD_FLOAT | 600 | 6.9% |
STORE_FAST_STORE_FAST | 340 | 3.9% |
STORE_SUBSCR_LIST_INT | 120 | 1.4% |
Successors | Count | Percentage |
---|---|---|
BINARY_OP_SUBTRACT_FLOAT | 3,960 | 45.4% |
LOAD_FAST | 2,420 | 27.8% |
BINARY_OP_MULTIPLY_FLOAT | 1,740 | 20.0% |
BINARY_OP | 600 | 6.9% |
Successors and predecessors for LOAD_GLOBAL
Predecessors | Count | Percentage |
---|---|---|
POP_TOP | 120 | 30.0% |
STORE_FAST | 80 | 20.0% |
RETURN_VALUE | 40 | 10.0% |
RESUME | 40 | 10.0% |
FOR_ITER_RANGE | 40 | 10.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 160 | 40.0% |
LOAD_ATTR | 60 | 15.0% |
LOAD_FAST | 60 | 15.0% |
CALL | 40 | 10.0% |
LOAD_GLOBAL_BUILTIN | 40 | 10.0% |
Successors and predecessors for RETURN_CONST
Predecessors | Count | Percentage |
---|---|---|
POP_TOP | 160 | 66.7% |
STORE_SUBSCR_LIST_INT | 60 | 25.0% |
STORE_SUBSCR | 20 | 8.3% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 240 | 100.0% |
Successors and predecessors for STORE_FAST
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 6,420 | 27.3% |
BINARY_OP_SUBTRACT_FLOAT | 5,640 | 24.0% |
STORE_FAST_STORE_FAST | 2,880 | 12.3% |
UNPACK_SEQUENCE_TUPLE | 2,420 | 10.3% |
BINARY_OP_MULTIPLY_FLOAT | 2,280 | 9.7% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 6,420 | 27.3% |
LOAD_FAST_LOAD_FAST | 6,360 | 27.1% |
LOAD_FAST | 5,040 | 21.5% |
UNPACK_SEQUENCE_LIST | 2,360 | 10.1% |
UNPACK_SEQUENCE_TUPLE | 1,320 | 5.6% |
Successors and predecessors for STORE_FAST_STORE_FAST
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST_STORE_FAST | 3,140 | 49.4% |
UNPACK_SEQUENCE_LIST | 3,040 | 47.8% |
UNPACK_SEQUENCE | 120 | 1.9% |
UNPACK_SEQUENCE_TUPLE | 60 | 0.9% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST_STORE_FAST | 3,140 | 49.4% |
STORE_FAST | 2,880 | 45.3% |
LOAD_FAST_LOAD_FAST | 340 | 5.3% |
Successors and predecessors for SWAP
Predecessors | Count | Percentage |
---|---|---|
SWAP | 9,360 | 50.0% |
BINARY_OP_ADD_FLOAT | 6,900 | 36.9% |
BINARY_OP_SUBTRACT_FLOAT | 2,280 | 12.2% |
BINARY_OP | 180 | 1.0% |
Successors | Count | Percentage |
---|---|---|
SWAP | 9,360 | 50.0% |
STORE_SUBSCR_LIST_INT | 9,000 | 48.1% |
STORE_SUBSCR | 360 | 1.9% |
Successors and predecessors for UNPACK_SEQUENCE
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 200 | 29.4% |
UNPACK_SEQUENCE | 120 | 17.6% |
FOR_ITER | 100 | 14.7% |
FOR_ITER_LIST | 100 | 14.7% |
UNPACK_SEQUENCE_TUPLE | 80 | 11.8% |
Successors | Count | Percentage |
---|---|---|
UNPACK_SEQUENCE_TUPLE | 160 | 23.5% |
UNPACK_SEQUENCE_LIST | 140 | 20.6% |
STORE_FAST_STORE_FAST | 120 | 17.6% |
UNPACK_SEQUENCE | 120 | 17.6% |
STORE_FAST | 100 | 14.7% |
Successors and predecessors for RESUME
Predecessors | Count | Percentage |
---|---|---|
CALL | 60 | 60.0% |
CALL_FUNCTION_EX | 20 | 20.0% |
COPY_FREE_VARS | 20 | 20.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 40 | 40.0% |
LOAD_GLOBAL | 40 | 40.0% |
LOAD_DEREF | 20 | 20.0% |
Successors and predecessors for BINARY_OP_ADD_FLOAT
Predecessors | Count | Percentage |
---|---|---|
BINARY_OP_MULTIPLY_FLOAT | 10,500 | 92.9% |
BINARY_OP | 800 | 7.1% |
Successors | Count | Percentage |
---|---|---|
SWAP | 6,900 | 61.1% |
LOAD_CONST | 1,360 | 12.0% |
LOAD_FAST | 1,320 | 11.7% |
LOAD_FAST_LOAD_FAST | 600 | 5.3% |
STORE_FAST | 560 | 5.0% |
Successors and predecessors for BINARY_OP_MULTIPLY_FLOAT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 15,800 | 81.7% |
LOAD_FAST_LOAD_FAST | 1,740 | 9.0% |
BINARY_OP | 1,260 | 6.5% |
BINARY_OP_ADD_FLOAT | 540 | 2.8% |
Successors | Count | Percentage |
---|---|---|
BINARY_OP_ADD_FLOAT | 10,500 | 54.3% |
BINARY_OP_SUBTRACT_FLOAT | 3,120 | 16.1% |
STORE_FAST | 2,280 | 11.8% |
LOAD_FAST | 1,320 | 6.8% |
LOAD_FAST_LOAD_FAST | 1,200 | 6.2% |
Successors and predecessors for BINARY_OP_SUBTRACT_FLOAT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 3,960 | 49.6% |
BINARY_OP_MULTIPLY_FLOAT | 3,120 | 39.1% |
BINARY_OP | 860 | 10.8% |
LOAD_FAST | 40 | 0.5% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 5,640 | 70.7% |
SWAP | 2,280 | 28.6% |
RETURN_VALUE | 60 | 0.8% |
Successors and predecessors for BINARY_SUBSCR_DICT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 40 | 66.7% |
BINARY_SUBSCR | 20 | 33.3% |
Successors | Count | Percentage |
---|---|---|
CALL_PY_GENERAL | 40 | 66.7% |
CALL | 20 | 33.3% |
Successors and predecessors for BINARY_SUBSCR_LIST_INT
Predecessors | Count | Percentage |
---|---|---|
COPY | 9,000 | 98.0% |
BINARY_SUBSCR | 180 | 2.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 9,180 | 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_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_GENERAL
Predecessors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 240 | 50.0% |
LOAD_FAST | 120 | 25.0% |
CALL | 80 | 16.7% |
BINARY_SUBSCR_DICT | 40 | 8.3% |
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 480 | 100.0% |
Successors and predecessors for FOR_ITER_LIST
Predecessors | Count | Percentage |
---|---|---|
GET_ITER | 2,400 | 60.0% |
JUMP_BACKWARD | 1,500 | 37.5% |
FOR_ITER | 100 | 2.5% |
Successors | Count | Percentage |
---|---|---|
UNPACK_SEQUENCE_TUPLE | 2,360 | 59.0% |
UNPACK_SEQUENCE_TWO_TUPLE | 1,320 | 33.0% |
LOAD_FAST | 160 | 4.0% |
UNPACK_SEQUENCE | 100 | 2.5% |
JUMP_BACKWARD | 60 | 1.5% |
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_GLOBAL | 40 | 5.9% |
LOAD_GLOBAL_MODULE | 40 | 5.9% |
Successors and predecessors for LOAD_ATTR_MODULE
Predecessors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 120 | 66.7% |
LOAD_ATTR | 60 | 33.3% |
Successors | Count | Percentage |
---|---|---|
PUSH_NULL | 180 | 100.0% |
Successors and predecessors for LOAD_GLOBAL_BUILTIN
Predecessors | Count | Percentage |
---|---|---|
RESUME_CHECK | 120 | 60.0% |
POP_TOP | 40 | 20.0% |
LOAD_GLOBAL | 40 | 20.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 200 | 100.0% |
Successors and predecessors for LOAD_GLOBAL_MODULE
Predecessors | Count | Percentage |
---|---|---|
POP_TOP | 240 | 33.3% |
LOAD_GLOBAL | 160 | 22.2% |
STORE_FAST | 160 | 22.2% |
RETURN_VALUE | 40 | 5.6% |
FOR_ITER_RANGE | 40 | 5.6% |
Successors | Count | Percentage |
---|---|---|
CALL_PY_GENERAL | 240 | 33.3% |
LOAD_CONST | 140 | 19.4% |
LOAD_ATTR_MODULE | 120 | 16.7% |
LOAD_ATTR | 60 | 8.3% |
LOAD_FAST | 60 | 8.3% |
Successors and predecessors for RESUME_CHECK
Predecessors | Count | Percentage |
---|---|---|
CALL_PY_GENERAL | 480 | 77.4% |
CALL_FUNCTION_EX | 60 | 9.7% |
COPY_FREE_VARS | 60 | 9.7% |
CALL | 20 | 3.2% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 360 | 58.1% |
LOAD_GLOBAL_BUILTIN | 120 | 19.4% |
LOAD_DEREF | 60 | 9.7% |
LOAD_GLOBAL | 40 | 6.5% |
LOAD_GLOBAL_MODULE | 40 | 6.5% |
Successors and predecessors for STORE_SUBSCR_LIST_INT
Predecessors | Count | Percentage |
---|---|---|
SWAP | 9,000 | 96.2% |
STORE_SUBSCR | 240 | 2.6% |
LOAD_CONST | 120 | 1.3% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 6,880 | 73.5% |
ENTER_EXECUTOR | 1,660 | 17.7% |
JUMP_BACKWARD | 640 | 6.8% |
LOAD_FAST_LOAD_FAST | 120 | 1.3% |
RETURN_CONST | 60 | 0.6% |
Successors and predecessors for UNPACK_SEQUENCE_LIST
Predecessors | Count | Percentage |
---|---|---|
UNPACK_SEQUENCE_TUPLE | 2,640 | 51.4% |
STORE_FAST | 2,360 | 45.9% |
UNPACK_SEQUENCE | 140 | 2.7% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST_STORE_FAST | 3,040 | 59.1% |
STORE_FAST | 2,100 | 40.9% |
Successors and predecessors for UNPACK_SEQUENCE_TUPLE
Predecessors | Count | Percentage |
---|---|---|
FOR_ITER_LIST | 2,360 | 45.4% |
STORE_FAST | 1,320 | 25.4% |
UNPACK_SEQUENCE_TWO_TUPLE | 1,320 | 25.4% |
UNPACK_SEQUENCE | 160 | 3.1% |
LOAD_FAST | 40 | 0.8% |
Successors | Count | Percentage |
---|---|---|
UNPACK_SEQUENCE_LIST | 2,640 | 50.8% |
STORE_FAST | 2,420 | 46.5% |
UNPACK_SEQUENCE | 80 | 1.5% |
STORE_FAST_STORE_FAST | 60 | 1.2% |
Successors and predecessors for UNPACK_SEQUENCE_TWO_TUPLE
Predecessors | Count | Percentage |
---|---|---|
FOR_ITER_LIST | 1,320 | 97.1% |
UNPACK_SEQUENCE | 40 | 2.9% |
Successors | Count | Percentage |
---|---|---|
UNPACK_SEQUENCE_TUPLE | 1,320 | 97.1% |
UNPACK_SEQUENCE | 40 | 2.9% |
Specialization stats by family
specialization stats for BINARY_OP family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
3,900 | 8.9% |
hit
ⓘSpecialized instructions that complete. |
38,620 | 87.9% |
Success | Count | Ratio |
---|---|---|
Success | 1,060 | 73.6% |
Failure | 380 | 26.4% |
Failure kind | Count | Ratio |
---|---|---|
true divide float | 220 | 57.9% |
power | 160 | 42.1% |
specialization stats for BINARY_SUBSCR family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
200 | 2.1% |
hit
ⓘSpecialized instructions that complete. |
9,240 | 95.9% |
Success | Count | Ratio |
---|---|---|
Success | 200 | 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. |
180 | 32.1% |
hit
ⓘSpecialized instructions that complete. |
200 | 35.7% |
Success | Count | Ratio |
---|---|---|
Success | 180 | 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. |
140 | 2.8% |
hit
ⓘSpecialized instructions that complete. |
4,680 | 94.4% |
Success | Count | Ratio |
---|---|---|
Success | 140 | 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. |
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. |
200 | 15.2% |
hit
ⓘSpecialized instructions that complete. |
920 | 69.7% |
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. |
240 | 2.4% |
hit
ⓘSpecialized instructions that complete. |
9,360 | 95.1% |
Success | Count | Ratio |
---|---|---|
Success | 240 | 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. |
340 | 2.7% |
hit
ⓘSpecialized instructions that complete. |
11,700 | 94.5% |
Success | Count | Ratio |
---|---|---|
Success | 340 | 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,547,020 | 98.7% |
Not specialized
ⓘInstructions that could be specialized but aren't, e.g. |
8,060 | 0.1% |
Specialized hits
ⓘSpecialized instructions, e.g. |
76,180 | 1.1% |
Specialized misses
ⓘSpecialized instructions, e.g. |
0 | 0.0% |
Breakdown of deferred (not specialized) instruction counts by family
Name | Count | Ratio |
---|---|---|
BINARY_OP | 3,900 | 74.1% |
UNPACK_SEQUENCE | 340 | 6.5% |
STORE_SUBSCR | 240 | 4.6% |
BINARY_SUBSCR | 200 | 3.8% |
LOAD_GLOBAL | 200 | 3.8% |
CALL | 180 | 3.4% |
FOR_ITER | 140 | 2.7% |
LOAD_ATTR | 60 | 1.1% |
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 | 0 | 0.0% |
Calls to Python functions inlined | 720 | 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 | 22.2% |
Calls via PyEval_EvalFrame (api) | 0 | 0.0% |
Calls via PyEval_EvalFrame (method) | 0 | 0.0% |
Frame objects created | 0 | 0.0% |
Frames pushed | 720 | 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 | 528,036,820 | 98.2% |
Frees to freelist | 528,036,980 | |
Allocations | 9,561,400 | 1.8% |
Allocations to 512 bytes | 9,561,260 | 1.8% |
Allocations to 4 kbytes | 140 | 0.0% |
Allocations over 4 kbytes | 0 | 0.0% |
Frees | 9,560,660 | |
Inline values | 0 | |
Interpreter increfs | 2,387,335,320 | 99.7% |
Interpreter decrefs | 2,924,934,940 | 99.8% |
Increfs | 6,403,540 | 0.3% |
Decrefs | 6,401,780 | 0.2% |
Materialize dict (on request) | 0 | |
Materialize dict (new key) | 0 | |
Materialize dict (too big) | 0 | |
Materialize dict (str subclass) | 0 | |
Method cache hits | 39 | |
Method cache misses | 21 | |
Method cache collisions | 21 | |
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. |
1,020 | |
Traces created
ⓘThe number of traces that were successfully created. |
140 | 13.7% |
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. |
880 | 86.3% |
Inner loop found
ⓘA trace is truncated because it has an inner loop |
920 | 90.2% |
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 |
16,003,460 | |
Uops executed
ⓘThe total number of uops (micro-operations) that were executed |
5,487,996,760 | 34,292.6% |
Count | Ratio | |
---|---|---|
Optimizer attempts
ⓘThe number of times the trace optimizer (_Py_uop_analyze_and_optimize) was run. |
140 | |
Optimizer successes
ⓘThe number of traces that were successfully optimized. |
140 | 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 | 0 | 0.0% |
<= 32 | 0 | 0.0% |
<= 64 | 20 | 14.3% |
<= 128 | 80 | 57.1% |
<= 256 | 0 | 0.0% |
<= 512 | 40 | 28.6% |
optimized trace length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
<= 2 | 0 | 0.0% |
<= 4 | 0 | 0.0% |
<= 8 | 0 | 0.0% |
<= 16 | 0 | 0.0% |
<= 32 | 0 | 0.0% |
<= 64 | 100 | 71.4% |
<= 128 | 0 | 0.0% |
<= 256 | 40 | 28.6% |
trace run length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
<= 2 | 0 | 0.0% |
<= 4 | 0 | 0.0% |
<= 8 | 160 | 0.0% |
<= 16 | 0 | 0.0% |
<= 32 | 0 | 0.0% |
<= 64 | 3,198,700 | 20.0% |
<= 128 | 40 | 0.0% |
<= 256 | 6,399,720 | 40.0% |
<= 512 | 20 | 0.0% |
<= 1,024 | 280 | 0.0% |
<= 2,048 | 3,199,960 | 20.0% |
uop execution stats
Name | Count | Self | Cumulative | Miss ratio |
---|---|---|---|---|
_LOAD_FAST | 1,087,999,640 | 19.8% | 19.8% | |
_STORE_FAST | 496,007,920 | 9.0% | 28.9% | |
_COPY | 479,981,280 | 8.7% | 37.6% | |
_SWAP | 479,981,280 | 8.7% | 46.4% | |
_BINARY_OP_MULTIPLY_FLOAT | 432,000,540 | 7.9% | 54.2% | |
_GUARD_NOS_FLOAT | 303,990,400 | 5.5% | 59.8% | |
_BINARY_SUBSCR_LIST_INT | 239,990,640 | 4.4% | 64.1% | |
_STORE_SUBSCR_LIST_INT | 239,990,640 | 4.4% | 68.5% | |
_LOAD_CONST_INLINE_BORROW | 239,990,640 | 4.4% | 72.9% | |
_BINARY_OP_ADD_FLOAT | 207,999,640 | 3.8% | 76.7% | |
_BINARY_OP_SUBTRACT_FLOAT | 192,005,820 | 3.5% | 80.2% | |
_GUARD_BOTH_FLOAT | 144,012,360 | 2.6% | 82.8% | |
_UNPACK_SEQUENCE_LIST | 80,003,120 | 1.5% | 84.3% | |
_UNPACK_SEQUENCE_TUPLE | 80,003,120 | 1.5% | 85.7% | |
_LOAD_FAST_0 | 79,994,540 | 1.5% | 87.2% | |
_GUARD_NOT_EXHAUSTED_LIST | 54,401,820 | 1.0% | 88.2% | 11.8% |
_ITER_CHECK_LIST | 54,401,820 | 1.0% | 89.2% | |
_TIER2_RESUME_CHECK | 51,203,280 | 0.9% | 90.1% | |
_ITER_NEXT_LIST | 48,001,320 | 0.9% | 91.0% | |
_JUMP_TO_TOP | 41,603,100 | 0.8% | 91.7% | |
_SET_IP | 38,401,040 | 0.7% | 92.4% | |
_CHECK_VALIDITY | 38,401,040 | 0.7% | 93.1% | |
_BINARY_OP | 32,005,400 | 0.6% | 93.7% | |
_LOAD_CONST_INLINE | 32,002,820 | 0.6% | 94.3% | |
_LOAD_FAST_7 | 32,001,860 | 0.6% | 94.9% | |
_STORE_FAST_5 | 32,001,860 | 0.6% | 95.5% | |
_STORE_FAST_6 | 32,001,860 | 0.6% | 96.0% | |
_STORE_FAST_7 | 32,001,860 | 0.6% | 96.6% | |
_UNPACK_SEQUENCE_TWO_TUPLE | 32,001,800 | 0.6% | 97.2% | |
_LOAD_FAST_5 | 32,001,800 | 0.6% | 97.8% | |
_LOAD_FAST_6 | 31,999,280 | 0.6% | 98.4% | |
_GUARD_TOS_FLOAT | 31,996,880 | 0.6% | 99.0% | |
_EXIT_TRACE | 12,798,880 | 0.2% | 99.2% | |
_START_EXECUTOR | 12,798,880 | 0.2% | 99.4% | |
_GET_ITER | 6,398,220 | 0.1% | 99.5% | |
_COLD_EXIT | 3,204,580 | 0.1% | 99.6% | |
_LOAD_FAST_2 | 3,202,360 | 0.1% | 99.6% | |
_LOAD_FAST_3 | 3,202,160 | 0.1% | 99.7% | |
_STORE_FAST_4 | 3,202,160 | 0.1% | 99.8% | |
_GUARD_NOT_EXHAUSTED_RANGE | 3,199,680 | 0.1% | 99.8% | 0.0% |
_ITER_CHECK_RANGE | 3,199,680 | 0.1% | 99.9% | |
_ITER_NEXT_RANGE | 3,199,520 | 0.1% | 99.9% | |
_POP_TOP | 3,198,700 | 0.1% | 100.0% | |
_STORE_FAST_2 | 3,660 | 0.0% | 100.0% | |
_LOAD_FAST_4 | 2,640 | 0.0% | 100.0% | |
_STORE_FAST_3 | 2,640 | 0.0% | 100.0% | |
_CHECK_VALIDITY_AND_SET_IP | 2,580 | 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_FAST _LOAD_FAST | 352,003,300 | 6.4% | 6.4% |
_LOAD_FAST _BINARY_OP_MULTIPLY_FLOAT | 288,000,720 | 5.2% | 11.7% |
_BINARY_OP_MULTIPLY_FLOAT _GUARD_NOS_FLOAT | 239,990,820 | 4.4% | 16.0% |
_COPY _COPY | 239,990,640 | 4.4% | 20.4% |
_COPY _BINARY_SUBSCR_LIST_INT | 239,990,640 | 4.4% | 24.8% |
_SWAP _SWAP | 239,990,640 | 4.4% | 29.2% |
_SWAP _STORE_SUBSCR_LIST_INT | 239,990,640 | 4.4% | 33.5% |
_LOAD_CONST_INLINE_BORROW _COPY | 239,990,640 | 4.4% | 37.9% |
_LOAD_FAST _LOAD_CONST_INLINE_BORROW | 239,990,640 | 4.4% | 42.3% |
_STORE_FAST _STORE_FAST | 208,004,860 | 3.8% | 46.1% |
_BINARY_SUBSCR_LIST_INT _LOAD_FAST | 191,995,320 | 3.5% | 49.6% |
_STORE_SUBSCR_LIST_INT _LOAD_FAST | 191,992,980 | 3.5% | 53.1% |
_BINARY_OP_ADD_FLOAT _SWAP | 143,992,980 | 2.6% | 55.7% |
_GUARD_NOS_FLOAT _BINARY_OP_ADD_FLOAT | 143,992,980 | 2.6% | 58.3% |
_LOAD_FAST _GUARD_BOTH_FLOAT | 112,009,540 | 2.0% | 60.3% |
_STORE_FAST _LOAD_FAST | 111,996,100 | 2.0% | 62.4% |
_GUARD_BOTH_FLOAT _BINARY_OP_SUBTRACT_FLOAT | 96,007,980 | 1.7% | 64.1% |
_BINARY_OP_SUBTRACT_FLOAT _STORE_FAST | 96,005,400 | 1.7% | 65.9% |
_GUARD_NOS_FLOAT _BINARY_OP_SUBTRACT_FLOAT | 95,997,840 | 1.7% | 67.6% |
_BINARY_OP_MULTIPLY_FLOAT _STORE_FAST | 95,997,660 | 1.7% | 69.4% |
_BINARY_OP_SUBTRACT_FLOAT _SWAP | 95,997,660 | 1.7% | 71.1% |
_LOAD_FAST_0 _LOAD_FAST | 79,994,540 | 1.5% | 72.6% |
_BINARY_OP_MULTIPLY_FLOAT _BINARY_OP_ADD_FLOAT | 64,005,640 | 1.2% | 73.8% |
_UNPACK_SEQUENCE_TUPLE _UNPACK_SEQUENCE_LIST | 64,003,600 | 1.2% | 74.9% |
_GUARD_NOS_FLOAT _BINARY_OP_MULTIPLY_FLOAT | 63,999,580 | 1.2% | 76.1% |
_LOAD_FAST _GUARD_NOS_FLOAT | 63,998,560 | 1.2% | 77.3% |
_ITER_CHECK_LIST _GUARD_NOT_EXHAUSTED_LIST | 54,401,820 | 1.0% | 78.2% |
_TIER2_RESUME_CHECK _ITER_CHECK_LIST | 48,003,600 | 0.9% | 79.1% |
_GUARD_BOTH_FLOAT _BINARY_OP_MULTIPLY_FLOAT | 48,003,360 | 0.9% | 80.0% |
_GUARD_NOT_EXHAUSTED_LIST _ITER_NEXT_LIST | 48,001,320 | 0.9% | 80.9% |
_UNPACK_SEQUENCE_LIST _STORE_FAST | 48,001,260 | 0.9% | 81.7% |
_BINARY_SUBSCR_LIST_INT _LOAD_FAST_0 | 47,995,320 | 0.9% | 82.6% |
_JUMP_TO_TOP _TIER2_RESUME_CHECK | 41,603,100 | 0.8% | 83.4% |
_STORE_SUBSCR_LIST_INT _JUMP_TO_TOP | 41,599,440 | 0.8% | 84.1% |
_BINARY_OP_MULTIPLY_FLOAT _LOAD_FAST | 32,005,400 | 0.6% | 84.7% |
_SET_IP _BINARY_OP | 32,002,820 | 0.6% | 85.3% |
_BINARY_OP _CHECK_VALIDITY | 32,002,820 | 0.6% | 85.9% |
_BINARY_OP_ADD_FLOAT _LOAD_FAST | 32,002,820 | 0.6% | 86.5% |
_CHECK_VALIDITY _GUARD_BOTH_FLOAT | 32,002,820 | 0.6% | 87.1% |
_LOAD_CONST_INLINE _SET_IP | 32,002,820 | 0.6% | 87.6% |
_LOAD_FAST_7 _LOAD_FAST | 32,001,860 | 0.6% | 88.2% |
_STORE_FAST_6 _STORE_FAST_7 | 32,001,860 | 0.6% | 88.8% |
_UNPACK_SEQUENCE_TWO_TUPLE _UNPACK_SEQUENCE_TUPLE | 32,001,800 | 0.6% | 89.4% |
_BINARY_OP_ADD_FLOAT _LOAD_CONST_INLINE | 32,001,800 | 0.6% | 90.0% |
_ITER_NEXT_LIST _UNPACK_SEQUENCE_TWO_TUPLE | 32,001,800 | 0.6% | 90.6% |
_LOAD_FAST_5 _LOAD_FAST | 32,001,800 | 0.6% | 91.1% |
_STORE_FAST _LOAD_FAST_5 | 32,001,800 | 0.6% | 91.7% |
_STORE_FAST_5 _STORE_FAST_6 | 32,001,800 | 0.6% | 92.3% |
_LOAD_FAST_6 _LOAD_FAST | 31,999,280 | 0.6% | 92.9% |
_STORE_FAST_7 _STORE_FAST | 31,999,280 | 0.6% | 93.5% |
_UNPACK_SEQUENCE_LIST _STORE_FAST_5 | 31,999,220 | 0.6% | 94.1% |
_STORE_FAST _UNPACK_SEQUENCE_TUPLE | 31,999,220 | 0.6% | 94.6% |
_STORE_FAST _LOAD_FAST_0 | 31,999,220 | 0.6% | 95.2% |
_STORE_FAST _LOAD_FAST_6 | 31,999,220 | 0.6% | 95.8% |
_STORE_FAST _LOAD_FAST_7 | 31,999,220 | 0.6% | 96.4% |
_GUARD_TOS_FLOAT _BINARY_OP_MULTIPLY_FLOAT | 31,996,880 | 0.6% | 97.0% |
_LOAD_FAST _GUARD_TOS_FLOAT | 31,996,880 | 0.6% | 97.6% |
_ITER_NEXT_LIST _UNPACK_SEQUENCE_TUPLE | 15,999,520 | 0.3% | 97.8% |
_UNPACK_SEQUENCE_TUPLE _STORE_FAST | 15,999,460 | 0.3% | 98.1% |
_STORE_FAST _UNPACK_SEQUENCE_LIST | 15,999,460 | 0.3% | 98.4% |
_START_EXECUTOR _TIER2_RESUME_CHECK | 9,600,180 | 0.2% | 98.6% |
_GUARD_NOT_EXHAUSTED_LIST _EXIT_TRACE | 6,400,500 | 0.1% | 98.7% |
_GET_ITER _CHECK_VALIDITY | 6,398,220 | 0.1% | 98.8% |
_STORE_SUBSCR_LIST_INT _EXIT_TRACE | 6,398,220 | 0.1% | 98.9% |
_SET_IP _GET_ITER | 6,398,220 | 0.1% | 99.1% |
_CHECK_VALIDITY _ITER_CHECK_LIST | 6,398,220 | 0.1% | 99.2% |
_ITER_CHECK_RANGE _GUARD_NOT_EXHAUSTED_RANGE | 3,199,680 | 0.1% | 99.2% |
_TIER2_RESUME_CHECK _ITER_CHECK_RANGE | 3,199,680 | 0.1% | 99.3% |
_GUARD_NOT_EXHAUSTED_RANGE _ITER_NEXT_RANGE | 3,199,520 | 0.1% | 99.4% |
_ITER_NEXT_RANGE _STORE_FAST_4 | 3,199,520 | 0.1% | 99.4% |
_LOAD_FAST_3 _SET_IP | 3,199,520 | 0.1% | 99.5% |
_STORE_FAST_4 _LOAD_FAST_3 | 3,199,520 | 0.1% | 99.5% |
_POP_TOP _LOAD_FAST_2 | 3,198,700 | 0.1% | 99.6% |
_LOAD_FAST_2 _SET_IP | 3,198,700 | 0.1% | 99.6% |
_START_EXECUTOR _POP_TOP | 3,198,700 | 0.1% | 99.7% |
_STORE_FAST _LOAD_FAST_2 | 3,660 | 0.0% | 99.7% |
_STORE_FAST_2 _JUMP_TO_TOP | 3,600 | 0.0% | 99.7% |
_BINARY_OP_SUBTRACT_FLOAT _STORE_FAST_2 | 2,640 | 0.0% | 99.7% |
_LOAD_FAST_4 _LOAD_FAST | 2,640 | 0.0% | 99.7% |
_UNPACK_SEQUENCE_LIST _STORE_FAST_3 | 2,580 | 0.0% | 99.7% |
_BINARY_OP _CHECK_VALIDITY_AND_SET_IP | 2,580 | 0.0% | 99.7% |
_CHECK_VALIDITY_AND_SET_IP _BINARY_OP | 2,580 | 0.0% | 99.7% |
_LOAD_FAST_2 _LOAD_FAST_7 | 2,580 | 0.0% | 99.7% |
_LOAD_FAST_3 _LOAD_FAST | 2,580 | 0.0% | 99.7% |
_STORE_FAST _LOAD_FAST_3 | 2,580 | 0.0% | 99.7% |
_STORE_FAST _LOAD_FAST_4 | 2,580 | 0.0% | 99.7% |
_STORE_FAST_3 _STORE_FAST_4 | 2,580 | 0.0% | 99.7% |
_STORE_FAST_4 _STORE_FAST_5 | 2,580 | 0.0% | 99.7% |
_STORE_FAST_7 _UNPACK_SEQUENCE_TUPLE | 2,580 | 0.0% | 99.7% |
_BINARY_OP_ADD_FLOAT _GUARD_NOS_FLOAT | 1,020 | 0.0% | 99.7% |
_BINARY_OP_ADD_FLOAT _STORE_FAST_2 | 1,020 | 0.0% | 99.7% |
_BINARY_OP_MULTIPLY_FLOAT _LOAD_CONST_INLINE | 1,020 | 0.0% | 99.7% |
_GUARD_BOTH_FLOAT _BINARY_OP_ADD_FLOAT | 1,020 | 0.0% | 99.7% |
_LOAD_FAST_2 _LOAD_FAST | 1,020 | 0.0% | 99.7% |
_GUARD_NOT_EXHAUSTED_RANGE _EXIT_TRACE | 160 | 0.0% | 99.7% |
_UNPACK_SEQUENCE_LIST _STORE_FAST_6 | 60 | 0.0% | 99.7% |
_UNPACK_SEQUENCE_TUPLE _STORE_FAST_5 | 60 | 0.0% | 99.7% |
_BINARY_OP_SUBTRACT_FLOAT _STORE_FAST_3 | 60 | 0.0% | 99.7% |
_BINARY_OP_SUBTRACT_FLOAT _STORE_FAST_4 | 60 | 0.0% | 99.7% |
_LOAD_FAST_2 _LOAD_FAST_6 | 60 | 0.0% | 99.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