- benchmark: telco
- 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 |
---|---|---|---|---|
POP_TOP | 6,404,440 | 33.1% | 33.1% | |
ENTER_EXECUTOR | 6,401,860 | 33.1% | 66.1% | |
CALL_KW | 6,400,080 | 33.0% | 99.2% | |
LOAD_FAST | 51,820 | 0.3% | 99.4% | |
STORE_FAST | 28,400 | 0.1% | 99.6% | |
BINARY_OP | 14,880 | 0.1% | 99.6% | |
LOAD_CONST | 14,620 | 0.1% | 99.7% | |
CALL | 5,400 | 0.0% | 99.8% | |
LOAD_GLOBAL_MODULE | 5,240 | 0.0% | 99.8% | |
CALL_NON_PY_GENERAL | 4,880 | 0.0% | 99.8% | |
CALL_METHOD_DESCRIPTOR_FAST | 4,520 | 0.0% | 99.8% | |
LOAD_ATTR_METHOD_LAZY_DICT | 4,520 | 0.0% | 99.8% | |
POP_JUMP_IF_FALSE | 3,200 | 0.0% | 99.9% | |
LOAD_GLOBAL_BUILTIN | 3,100 | 0.0% | 99.9% | |
LOAD_ATTR_METHOD_NO_DICT | 3,000 | 0.0% | 99.9% | |
LOAD_ATTR | 2,180 | 0.0% | 99.9% | |
FOR_ITER_RANGE | 1,960 | 0.0% | 99.9% | |
COMPARE_OP | 1,700 | 0.0% | 99.9% | |
BINARY_SUBSCR_LIST_INT | 1,580 | 0.0% | 99.9% | |
CALL_BUILTIN_FAST | 1,580 | 0.0% | 99.9% | |
TO_BOOL_INT | 1,580 | 0.0% | 100.0% | |
UNPACK_SEQUENCE_TUPLE | 1,580 | 0.0% | 100.0% | |
CALL_BUILTIN_CLASS | 1,440 | 0.0% | 100.0% | |
GET_ITER | 1,360 | 0.0% | 100.0% | |
LOAD_GLOBAL | 920 | 0.0% | 100.0% | |
EXTENDED_ARG | 740 | 0.0% | 100.0% | |
JUMP_BACKWARD | 680 | 0.0% | 100.0% | |
PUSH_NULL | 560 | 0.0% | 100.0% | |
LOAD_ATTR_MODULE | 300 | 0.0% | 100.0% | |
LOAD_DEREF | 240 | 0.0% | 100.0% | |
RETURN_VALUE | 160 | 0.0% | 100.0% | |
CALL_FUNCTION_EX | 160 | 0.0% | 100.0% | |
RESUME_CHECK | 120 | 0.0% | 100.0% | |
STORE_ATTR | 100 | 0.0% | 100.0% | |
BEFORE_WITH | 80 | 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% | |
FOR_ITER | 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% | |
CALL_BUILTIN_FAST_WITH_KEYWORDS | 60 | 0.0% | 100.0% | |
BINARY_SUBSCR | 40 | 0.0% | 100.0% | |
TO_BOOL | 40 | 0.0% | 100.0% | |
UNPACK_SEQUENCE | 40 | 0.0% | 100.0% | |
RESUME | 40 | 0.0% | 100.0% |
Pair counts for top 100 opcode pairs
Pairs of specialized operations that deoptimize and are then followed by the corresponding unspecialized instruction are not counted as pairs.
Pair | Count | Self | Cumulative |
---|---|---|---|
POP_TOP ENTER_EXECUTOR | 6,400,600 | 33.0% | 33.0% |
CALL_KW POP_TOP | 6,400,000 | 33.0% | 66.1% |
ENTER_EXECUTOR CALL_KW | 6,398,380 | 33.0% | 99.1% |
STORE_FAST LOAD_FAST | 22,220 | 0.1% | 99.2% |
LOAD_FAST LOAD_FAST | 15,560 | 0.1% | 99.3% |
LOAD_FAST BINARY_OP | 12,380 | 0.1% | 99.4% |
BINARY_OP STORE_FAST | 12,340 | 0.1% | 99.4% |
LOAD_FAST LOAD_CONST | 4,900 | 0.0% | 99.5% |
LOAD_GLOBAL_MODULE LOAD_CONST | 4,760 | 0.0% | 99.5% |
CALL_NON_PY_GENERAL STORE_FAST | 4,640 | 0.0% | 99.5% |
LOAD_FAST CALL_NON_PY_GENERAL | 4,520 | 0.0% | 99.5% |
LOAD_FAST LOAD_ATTR_METHOD_LAZY_DICT | 4,420 | 0.0% | 99.6% |
CALL STORE_FAST | 4,380 | 0.0% | 99.6% |
LOAD_CONST CALL | 3,460 | 0.0% | 99.6% |
LOAD_ATTR_METHOD_LAZY_DICT LOAD_CONST | 3,200 | 0.0% | 99.6% |
LOAD_CONST CALL_METHOD_DESCRIPTOR_FAST | 3,140 | 0.0% | 99.6% |
LOAD_ATTR_METHOD_NO_DICT LOAD_FAST | 3,000 | 0.0% | 99.6% |
LOAD_FAST LOAD_ATTR_METHOD_NO_DICT | 2,960 | 0.0% | 99.7% |
STORE_FAST LOAD_GLOBAL_BUILTIN | 2,900 | 0.0% | 99.7% |
CALL_METHOD_DESCRIPTOR_FAST POP_TOP | 2,880 | 0.0% | 99.7% |
STORE_FAST LOAD_GLOBAL_MODULE | 2,720 | 0.0% | 99.7% |
POP_TOP LOAD_FAST | 2,560 | 0.0% | 99.7% |
FOR_ITER_RANGE STORE_FAST | 1,940 | 0.0% | 99.7% |
LOAD_FAST LOAD_ATTR | 1,880 | 0.0% | 99.7% |
LOAD_GLOBAL_BUILTIN LOAD_FAST | 1,720 | 0.0% | 99.8% |
LOAD_CONST CALL_KW | 1,700 | 0.0% | 99.8% |
LOAD_ATTR LOAD_FAST | 1,640 | 0.0% | 99.8% |
CALL_METHOD_DESCRIPTOR_FAST STORE_FAST | 1,640 | 0.0% | 99.8% |
BINARY_OP LOAD_FAST | 1,600 | 0.0% | 99.8% |
COMPARE_OP POP_JUMP_IF_FALSE | 1,600 | 0.0% | 99.8% |
LOAD_CONST BINARY_OP | 1,600 | 0.0% | 99.8% |
LOAD_CONST COMPARE_OP | 1,600 | 0.0% | 99.8% |
LOAD_CONST LOAD_FAST | 1,600 | 0.0% | 99.8% |
BINARY_SUBSCR_LIST_INT STORE_FAST | 1,580 | 0.0% | 99.8% |
TO_BOOL_INT POP_JUMP_IF_FALSE | 1,580 | 0.0% | 99.8% |
UNPACK_SEQUENCE_TUPLE STORE_FAST | 1,580 | 0.0% | 99.8% |
LOAD_FAST BINARY_SUBSCR_LIST_INT | 1,560 | 0.0% | 99.8% |
LOAD_FAST CALL_BUILTIN_FAST | 1,560 | 0.0% | 99.9% |
LOAD_FAST TO_BOOL_INT | 1,560 | 0.0% | 99.9% |
POP_JUMP_IF_FALSE LOAD_GLOBAL_MODULE | 1,560 | 0.0% | 99.9% |
CALL_BUILTIN_FAST UNPACK_SEQUENCE_TUPLE | 1,560 | 0.0% | 99.9% |
ENTER_EXECUTOR POP_TOP | 1,340 | 0.0% | 99.9% |
CALL_BUILTIN_CLASS GET_ITER | 1,320 | 0.0% | 99.9% |
LOAD_CONST CALL_BUILTIN_CLASS | 1,280 | 0.0% | 99.9% |
LOAD_ATTR_METHOD_LAZY_DICT CALL_METHOD_DESCRIPTOR_FAST | 1,280 | 0.0% | 99.9% |
GET_ITER FOR_ITER_RANGE | 1,260 | 0.0% | 99.9% |
ENTER_EXECUTOR LOAD_FAST | 1,260 | 0.0% | 99.9% |
POP_JUMP_IF_FALSE ENTER_EXECUTOR | 1,260 | 0.0% | 99.9% |
LOAD_GLOBAL_BUILTIN LOAD_CONST | 1,260 | 0.0% | 99.9% |
BINARY_OP BINARY_OP | 900 | 0.0% | 99.9% |
ENTER_EXECUTOR CALL | 880 | 0.0% | 99.9% |
STORE_FAST LOAD_GLOBAL | 480 | 0.0% | 99.9% |
POP_TOP LOAD_GLOBAL_MODULE | 420 | 0.0% | 99.9% |
CALL CALL | 420 | 0.0% | 100.0% |
EXTENDED_ARG FOR_ITER_RANGE | 360 | 0.0% | 100.0% |
POP_TOP EXTENDED_ARG | 340 | 0.0% | 100.0% |
POP_TOP JUMP_BACKWARD | 340 | 0.0% | 100.0% |
EXTENDED_ARG JUMP_BACKWARD | 340 | 0.0% | 100.0% |
LOAD_GLOBAL LOAD_GLOBAL_MODULE | 340 | 0.0% | 100.0% |
POP_JUMP_IF_FALSE LOAD_FAST | 340 | 0.0% | 100.0% |
JUMP_BACKWARD EXTENDED_ARG | 320 | 0.0% | 100.0% |
JUMP_BACKWARD FOR_ITER_RANGE | 300 | 0.0% | 100.0% |
LOAD_ATTR_MODULE PUSH_NULL | 300 | 0.0% | 100.0% |
PUSH_NULL CALL | 200 | 0.0% | 100.0% |
LOAD_FAST CALL | 200 | 0.0% | 100.0% |
LOAD_GLOBAL LOAD_CONST | 200 | 0.0% | 100.0% |
LOAD_GLOBAL_MODULE LOAD_ATTR_MODULE | 200 | 0.0% | 100.0% |
PUSH_NULL LOAD_FAST | 160 | 0.0% | 100.0% |
CALL CALL_NON_PY_GENERAL | 160 | 0.0% | 100.0% |
LOAD_CONST LOAD_CONST | 160 | 0.0% | 100.0% |
LOAD_DEREF PUSH_NULL | 160 | 0.0% | 100.0% |
PUSH_NULL CALL_NON_PY_GENERAL | 120 | 0.0% | 100.0% |
LOAD_GLOBAL LOAD_GLOBAL_BUILTIN | 120 | 0.0% | 100.0% |
CALL_NON_PY_GENERAL POP_TOP | 120 | 0.0% | 100.0% |
POP_TOP LOAD_GLOBAL | 100 | 0.0% | 100.0% |
CALL POP_TOP | 100 | 0.0% | 100.0% |
CALL CALL_METHOD_DESCRIPTOR_FAST | 100 | 0.0% | 100.0% |
COMPARE_OP COMPARE_OP | 100 | 0.0% | 100.0% |
LOAD_ATTR PUSH_NULL | 100 | 0.0% | 100.0% |
LOAD_ATTR LOAD_ATTR | 100 | 0.0% | 100.0% |
LOAD_ATTR LOAD_ATTR_METHOD_LAZY_DICT | 100 | 0.0% | 100.0% |
LOAD_ATTR LOAD_ATTR_MODULE | 100 | 0.0% | 100.0% |
LOAD_GLOBAL LOAD_ATTR | 100 | 0.0% | 100.0% |
LOAD_GLOBAL_MODULE LOAD_ATTR | 100 | 0.0% | 100.0% |
BEFORE_WITH STORE_FAST | 80 | 0.0% | 100.0% |
GET_ITER EXTENDED_ARG | 80 | 0.0% | 100.0% |
NOP LOAD_DEREF | 80 | 0.0% | 100.0% |
POP_TOP NOP | 80 | 0.0% | 100.0% |
PUSH_NULL LOAD_FAST_CHECK | 80 | 0.0% | 100.0% |
RETURN_VALUE RETURN_VALUE | 80 | 0.0% | 100.0% |
BUILD_LIST LOAD_DEREF | 80 | 0.0% | 100.0% |
CALL CALL_BUILTIN_CLASS | 80 | 0.0% | 100.0% |
CALL_FUNCTION_EX COPY_FREE_VARS | 80 | 0.0% | 100.0% |
CALL_INTRINSIC_1 CALL_FUNCTION_EX | 80 | 0.0% | 100.0% |
CALL_KW STORE_FAST | 80 | 0.0% | 100.0% |
LIST_EXTEND CALL_INTRINSIC_1 | 80 | 0.0% | 100.0% |
LOAD_DEREF LIST_EXTEND | 80 | 0.0% | 100.0% |
LOAD_FAST BUILD_LIST | 80 | 0.0% | 100.0% |
LOAD_FAST CALL_FUNCTION_EX | 80 | 0.0% | 100.0% |
LOAD_FAST_CHECK CALL | 80 | 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 BEFORE_WITH
Predecessors | Count | Percentage |
---|---|---|
CALL_BUILTIN_FAST_WITH_KEYWORDS | 60 | 75.0% |
CALL | 20 | 25.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 80 | 100.0% |
Successors and predecessors for BINARY_SUBSCR
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 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 |
---|---|---|
CALL_BUILTIN_CLASS | 1,320 | 97.1% |
CALL | 40 | 2.9% |
Successors | Count | Percentage |
---|---|---|
FOR_ITER_RANGE | 1,260 | 92.6% |
EXTENDED_ARG | 80 | 5.9% |
FOR_ITER | 20 | 1.5% |
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 |
---|---|---|
CALL_KW | 6,400,000 | 99.9% |
CALL_METHOD_DESCRIPTOR_FAST | 2,880 | 0.0% |
ENTER_EXECUTOR | 1,340 | 0.0% |
CALL_NON_PY_GENERAL | 120 | 0.0% |
CALL | 100 | 0.0% |
Successors | Count | Percentage |
---|---|---|
ENTER_EXECUTOR | 6,400,600 | 99.9% |
LOAD_FAST | 2,560 | 0.0% |
LOAD_GLOBAL_MODULE | 420 | 0.0% |
EXTENDED_ARG | 340 | 0.0% |
JUMP_BACKWARD | 340 | 0.0% |
Successors and predecessors for PUSH_NULL
Predecessors | Count | Percentage |
---|---|---|
LOAD_ATTR_MODULE | 300 | 53.6% |
LOAD_DEREF | 160 | 28.6% |
LOAD_ATTR | 100 | 17.9% |
Successors | Count | Percentage |
---|---|---|
CALL | 200 | 35.7% |
LOAD_FAST | 160 | 28.6% |
CALL_NON_PY_GENERAL | 120 | 21.4% |
LOAD_FAST_CHECK | 80 | 14.3% |
Successors and predecessors for RETURN_VALUE
Predecessors | Count | Percentage |
---|---|---|
RETURN_VALUE | 80 | 50.0% |
BINARY_OP_SUBTRACT_FLOAT | 60 | 37.5% |
BINARY_OP | 20 | 12.5% |
Successors | Count | Percentage |
---|---|---|
RETURN_VALUE | 80 | 50.0% |
LOAD_GLOBAL | 40 | 25.0% |
LOAD_GLOBAL_MODULE | 40 | 25.0% |
Successors and predecessors for TO_BOOL
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 40 | 100.0% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 20 | 50.0% |
TO_BOOL_INT | 20 | 50.0% |
Successors and predecessors for BINARY_OP
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 12,380 | 83.2% |
LOAD_CONST | 1,600 | 10.8% |
BINARY_OP | 900 | 6.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 12,340 | 82.9% |
LOAD_FAST | 1,600 | 10.8% |
BINARY_OP | 900 | 6.0% |
RETURN_VALUE | 20 | 0.1% |
BINARY_OP_SUBTRACT_FLOAT | 20 | 0.1% |
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 |
---|---|---|
LOAD_CONST | 3,460 | 64.1% |
ENTER_EXECUTOR | 880 | 16.3% |
CALL | 420 | 7.8% |
PUSH_NULL | 200 | 3.7% |
LOAD_FAST | 200 | 3.7% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 4,380 | 81.1% |
CALL | 420 | 7.8% |
CALL_NON_PY_GENERAL | 160 | 3.0% |
POP_TOP | 100 | 1.9% |
CALL_METHOD_DESCRIPTOR_FAST | 100 | 1.9% |
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 CALL_KW
Predecessors | Count | Percentage |
---|---|---|
ENTER_EXECUTOR | 6,398,380 | 100.0% |
LOAD_CONST | 1,700 | 0.0% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 6,400,000 | 100.0% |
STORE_FAST | 80 | 0.0% |
Successors and predecessors for COMPARE_OP
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 1,600 | 94.1% |
COMPARE_OP | 100 | 5.9% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 1,600 | 94.1% |
COMPARE_OP | 100 | 5.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 | 6,400,600 | 100.0% |
POP_JUMP_IF_FALSE | 1,260 | 0.0% |
Successors | Count | Percentage |
---|---|---|
CALL_KW | 6,398,380 | 99.9% |
POP_TOP | 1,340 | 0.0% |
LOAD_FAST | 1,260 | 0.0% |
CALL | 880 | 0.0% |
Successors and predecessors for EXTENDED_ARG
Predecessors | Count | Percentage |
---|---|---|
POP_TOP | 340 | 45.9% |
JUMP_BACKWARD | 320 | 43.2% |
GET_ITER | 80 | 10.8% |
Successors | Count | Percentage |
---|---|---|
FOR_ITER_RANGE | 360 | 48.6% |
JUMP_BACKWARD | 340 | 45.9% |
FOR_ITER | 40 | 5.4% |
Successors and predecessors for FOR_ITER
Predecessors | Count | Percentage |
---|---|---|
EXTENDED_ARG | 40 | 50.0% |
GET_ITER | 20 | 25.0% |
JUMP_BACKWARD | 20 | 25.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 40 | 50.0% |
FOR_ITER_RANGE | 40 | 50.0% |
Successors and predecessors for JUMP_BACKWARD
Predecessors | Count | Percentage |
---|---|---|
POP_TOP | 340 | 50.0% |
EXTENDED_ARG | 340 | 50.0% |
Successors | Count | Percentage |
---|---|---|
EXTENDED_ARG | 320 | 47.1% |
FOR_ITER_RANGE | 300 | 44.1% |
CALL | 20 | 2.9% |
FOR_ITER | 20 | 2.9% |
LOAD_FAST | 20 | 2.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_FAST | 1,880 | 86.2% |
LOAD_ATTR | 100 | 4.6% |
LOAD_GLOBAL | 100 | 4.6% |
LOAD_GLOBAL_MODULE | 100 | 4.6% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 1,640 | 75.2% |
PUSH_NULL | 100 | 4.6% |
LOAD_ATTR | 100 | 4.6% |
LOAD_ATTR_METHOD_LAZY_DICT | 100 | 4.6% |
LOAD_ATTR_MODULE | 100 | 4.6% |
Successors and predecessors for LOAD_CONST
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 4,900 | 33.5% |
LOAD_GLOBAL_MODULE | 4,760 | 32.6% |
LOAD_ATTR_METHOD_LAZY_DICT | 3,200 | 21.9% |
LOAD_GLOBAL_BUILTIN | 1,260 | 8.6% |
LOAD_GLOBAL | 200 | 1.4% |
Successors | Count | Percentage |
---|---|---|
CALL | 3,460 | 23.7% |
CALL_METHOD_DESCRIPTOR_FAST | 3,140 | 21.5% |
CALL_KW | 1,700 | 11.6% |
BINARY_OP | 1,600 | 10.9% |
COMPARE_OP | 1,600 | 10.9% |
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 |
---|---|---|
STORE_FAST | 22,220 | 42.9% |
LOAD_FAST | 15,560 | 30.0% |
LOAD_ATTR_METHOD_NO_DICT | 3,000 | 5.8% |
POP_TOP | 2,560 | 4.9% |
LOAD_GLOBAL_BUILTIN | 1,720 | 3.3% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 15,560 | 30.0% |
BINARY_OP | 12,380 | 23.9% |
LOAD_CONST | 4,900 | 9.5% |
CALL_NON_PY_GENERAL | 4,520 | 8.7% |
LOAD_ATTR_METHOD_LAZY_DICT | 4,420 | 8.5% |
Successors and predecessors for LOAD_FAST_CHECK
Predecessors | Count | Percentage |
---|---|---|
PUSH_NULL | 80 | 100.0% |
Successors | Count | Percentage |
---|---|---|
CALL | 80 | 100.0% |
Successors and predecessors for LOAD_GLOBAL
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 480 | 52.2% |
POP_TOP | 100 | 10.9% |
LOAD_GLOBAL | 80 | 8.7% |
RETURN_VALUE | 40 | 4.3% |
POP_JUMP_IF_FALSE | 40 | 4.3% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 340 | 37.0% |
LOAD_CONST | 200 | 21.7% |
LOAD_GLOBAL_BUILTIN | 120 | 13.0% |
LOAD_ATTR | 100 | 10.9% |
LOAD_GLOBAL | 80 | 8.7% |
Successors and predecessors for POP_JUMP_IF_FALSE
Predecessors | Count | Percentage |
---|---|---|
COMPARE_OP | 1,600 | 50.0% |
TO_BOOL_INT | 1,580 | 49.4% |
TO_BOOL | 20 | 0.6% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 1,560 | 48.8% |
ENTER_EXECUTOR | 1,260 | 39.4% |
LOAD_FAST | 340 | 10.6% |
LOAD_GLOBAL | 40 | 1.2% |
Successors and predecessors for STORE_ATTR
Predecessors | Count | Percentage |
---|---|---|
CALL_NON_PY_GENERAL | 60 | 60.0% |
CALL | 20 | 20.0% |
STORE_ATTR | 20 | 20.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL | 40 | 40.0% |
LOAD_GLOBAL_BUILTIN | 40 | 40.0% |
STORE_ATTR | 20 | 20.0% |
Successors and predecessors for STORE_FAST
Predecessors | Count | Percentage |
---|---|---|
BINARY_OP | 12,340 | 43.5% |
CALL_NON_PY_GENERAL | 4,640 | 16.3% |
CALL | 4,380 | 15.4% |
FOR_ITER_RANGE | 1,940 | 6.8% |
CALL_METHOD_DESCRIPTOR_FAST | 1,640 | 5.8% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 22,220 | 78.2% |
LOAD_GLOBAL_BUILTIN | 2,900 | 10.2% |
LOAD_GLOBAL_MODULE | 2,720 | 9.6% |
LOAD_GLOBAL | 480 | 1.7% |
LOAD_CONST | 80 | 0.3% |
Successors and predecessors for UNPACK_SEQUENCE
Predecessors | Count | Percentage |
---|---|---|
CALL | 20 | 50.0% |
CALL_BUILTIN_FAST | 20 | 50.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 20 | 50.0% |
UNPACK_SEQUENCE_TUPLE | 20 | 50.0% |
Successors and predecessors for RESUME
Predecessors | Count | Percentage |
---|---|---|
CALL_FUNCTION_EX | 20 | 50.0% |
COPY_FREE_VARS | 20 | 50.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_DEREF | 20 | 50.0% |
LOAD_GLOBAL | 20 | 50.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 BINARY_SUBSCR_LIST_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 1,560 | 98.7% |
BINARY_SUBSCR | 20 | 1.3% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 1,580 | 100.0% |
Successors and predecessors for CALL_BUILTIN_CLASS
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 1,280 | 88.9% |
CALL | 80 | 5.6% |
LOAD_FAST | 40 | 2.8% |
CALL_BUILTIN_CLASS | 40 | 2.8% |
Successors | Count | Percentage |
---|---|---|
GET_ITER | 1,320 | 91.7% |
STORE_FAST | 60 | 4.2% |
CALL_BUILTIN_CLASS | 40 | 2.8% |
CALL | 20 | 1.4% |
Successors and predecessors for CALL_BUILTIN_FAST
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 1,560 | 98.7% |
CALL | 20 | 1.3% |
Successors | Count | Percentage |
---|---|---|
UNPACK_SEQUENCE_TUPLE | 1,560 | 98.7% |
UNPACK_SEQUENCE | 20 | 1.3% |
Successors and predecessors for CALL_BUILTIN_FAST_WITH_KEYWORDS
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 40 | 66.7% |
CALL | 20 | 33.3% |
Successors | Count | Percentage |
---|---|---|
BEFORE_WITH | 60 | 100.0% |
Successors and predecessors for CALL_METHOD_DESCRIPTOR_FAST
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 3,140 | 69.5% |
LOAD_ATTR_METHOD_LAZY_DICT | 1,280 | 28.3% |
CALL | 100 | 2.2% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 2,880 | 63.7% |
STORE_FAST | 1,640 | 36.3% |
Successors and predecessors for CALL_NON_PY_GENERAL
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 4,520 | 92.6% |
CALL | 160 | 3.3% |
PUSH_NULL | 120 | 2.5% |
LOAD_CONST | 40 | 0.8% |
LOAD_GLOBAL_MODULE | 40 | 0.8% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 4,640 | 95.1% |
POP_TOP | 120 | 2.5% |
LOAD_FAST | 60 | 1.2% |
STORE_ATTR | 60 | 1.2% |
Successors and predecessors for FOR_ITER_RANGE
Predecessors | Count | Percentage |
---|---|---|
GET_ITER | 1,260 | 64.3% |
EXTENDED_ARG | 360 | 18.4% |
JUMP_BACKWARD | 300 | 15.3% |
FOR_ITER | 40 | 2.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 1,940 | 99.0% |
LOAD_GLOBAL | 20 | 1.0% |
Successors and predecessors for LOAD_ATTR_METHOD_LAZY_DICT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 4,420 | 97.8% |
LOAD_ATTR | 100 | 2.2% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST | 3,200 | 70.8% |
CALL_METHOD_DESCRIPTOR_FAST | 1,280 | 28.3% |
CALL | 40 | 0.9% |
Successors and predecessors for LOAD_ATTR_METHOD_NO_DICT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 2,960 | 98.7% |
LOAD_ATTR | 40 | 1.3% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 3,000 | 100.0% |
Successors and predecessors for LOAD_ATTR_MODULE
Predecessors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 200 | 66.7% |
LOAD_ATTR | 100 | 33.3% |
Successors | Count | Percentage |
---|---|---|
PUSH_NULL | 300 | 100.0% |
Successors and predecessors for LOAD_GLOBAL_BUILTIN
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 2,900 | 93.5% |
LOAD_GLOBAL | 120 | 3.9% |
STORE_ATTR | 40 | 1.3% |
LOAD_GLOBAL_BUILTIN | 40 | 1.3% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 1,720 | 55.5% |
LOAD_CONST | 1,260 | 40.6% |
LOAD_GLOBAL | 40 | 1.3% |
LOAD_GLOBAL_BUILTIN | 40 | 1.3% |
LOAD_GLOBAL_MODULE | 40 | 1.3% |
Successors and predecessors for LOAD_GLOBAL_MODULE
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 2,720 | 51.9% |
POP_JUMP_IF_FALSE | 1,560 | 29.8% |
POP_TOP | 420 | 8.0% |
LOAD_GLOBAL | 340 | 6.5% |
LOAD_GLOBAL_MODULE | 80 | 1.5% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST | 4,760 | 90.8% |
LOAD_ATTR_MODULE | 200 | 3.8% |
LOAD_ATTR | 100 | 1.9% |
LOAD_GLOBAL_MODULE | 80 | 1.5% |
LOAD_GLOBAL | 40 | 0.8% |
Successors and predecessors for RESUME_CHECK
Predecessors | Count | Percentage |
---|---|---|
CALL_FUNCTION_EX | 60 | 50.0% |
COPY_FREE_VARS | 60 | 50.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_DEREF | 60 | 50.0% |
LOAD_GLOBAL_MODULE | 40 | 33.3% |
LOAD_GLOBAL | 20 | 16.7% |
Successors and predecessors for TO_BOOL_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 1,560 | 98.7% |
TO_BOOL | 20 | 1.3% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 1,580 | 100.0% |
Successors and predecessors for UNPACK_SEQUENCE_TUPLE
Predecessors | Count | Percentage |
---|---|---|
CALL_BUILTIN_FAST | 1,560 | 98.7% |
UNPACK_SEQUENCE | 20 | 1.3% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 1,580 | 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. |
13,960 | 93.4% |
hit
ⓘSpecialized instructions that complete. |
60 | 0.4% |
Success | Count | Ratio |
---|---|---|
Success | 20 | 2.2% |
Failure | 900 | 97.8% |
Failure kind | Count | Ratio |
---|---|---|
add other | 500 | 55.6% |
multiply other | 200 | 22.2% |
and int | 100 | 11.1% |
multiply different types | 100 | 11.1% |
specialization stats for BINARY_SUBSCR family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
20 | 1.2% |
hit
ⓘSpecialized instructions that complete. |
1,580 | 97.5% |
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. |
4,620 | 35.5% |
hit
ⓘSpecialized instructions that complete. |
7,600 | 58.5% |
Success | Count | Ratio |
---|---|---|
Success | 380 | 48.7% |
Failure | 400 | 51.3% |
Failure kind | Count | Ratio |
---|---|---|
class no vectorcall | 400 | 100.0% |
specialization stats for COMPARE_OP family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
1,600 | 94.1% |
Success | Count | Ratio |
---|---|---|
Success | 0 | 0.0% |
Failure | 100 | 100.0% |
Failure kind | Count | Ratio |
---|---|---|
different types | 100 | 100.0% |
specialization stats for FOR_ITER family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
40 | 2.0% |
hit
ⓘSpecialized instructions that complete. |
1,960 | 96.1% |
Success | Count | Ratio |
---|---|---|
Success | 40 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for LOAD_ATTR family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
1,840 | 18.4% |
hit
ⓘSpecialized instructions that complete. |
7,820 | 78.2% |
Success | Count | Ratio |
---|---|---|
Success | 240 | 70.6% |
Failure | 100 | 29.4% |
Failure kind | Count | Ratio |
---|---|---|
overridden | 100 | 100.0% |
specialization stats for LOAD_GLOBAL family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
460 | 5.0% |
hit
ⓘSpecialized instructions that complete. |
8,340 | 90.1% |
Success | Count | Ratio |
---|---|---|
Success | 460 | 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. |
80 | 80.0% |
Success | Count | Ratio |
---|---|---|
Success | 0 | 0.0% |
Failure | 20 | 100.0% |
Failure kind | Count | Ratio |
---|---|---|
overridden | 20 | 100.0% |
specialization stats for TO_BOOL family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
20 | 1.2% |
hit
ⓘSpecialized instructions that complete. |
1,580 | 97.5% |
Success | Count | Ratio |
---|---|---|
Success | 20 | 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. |
20 | 1.2% |
hit
ⓘSpecialized instructions that complete. |
1,580 | 97.5% |
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. |
19,305,720 | 99.7% |
Not specialized
ⓘInstructions that could be specialized but aren't, e.g. |
28,580 | 0.1% |
Specialized hits
ⓘSpecialized instructions, e.g. |
35,520 | 0.2% |
Specialized misses
ⓘSpecialized instructions, e.g. |
0 | 0.0% |
Breakdown of deferred (not specialized) instruction counts by family
Name | Count | Ratio |
---|---|---|
BINARY_OP | 13,960 | 61.6% |
CALL | 4,620 | 20.4% |
LOAD_ATTR | 1,840 | 8.1% |
COMPARE_OP | 1,600 | 7.1% |
LOAD_GLOBAL | 460 | 2.0% |
STORE_ATTR | 80 | 0.4% |
FOR_ITER | 40 | 0.2% |
BINARY_SUBSCR | 20 | 0.1% |
TO_BOOL | 20 | 0.1% |
UNPACK_SEQUENCE | 20 | 0.1% |
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 | 160 | 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 | 100.0% |
Calls via PyEval_EvalFrame (api) | 0 | 0.0% |
Calls via PyEval_EvalFrame (method) | 0 | 0.0% |
Frame objects created | 0 | 0.0% |
Frames pushed | 160 | 100.0% |
Allocations, frees and dict materializatons
Below, "allocations" means "allocations that are not from a freelist". Total allocations = "Allocations from freelist" + "Allocations".
"Inline values" is the number of values arrays inlined into objects.
The cache hit/miss numbers are for the MRO cache, split into dunder and other names.
Count | Ratio | |
---|---|---|
Allocations from freelist | 28,814,360 | 20.8% |
Frees to freelist | 28,814,360 | |
Allocations | 110,034,860 | 79.2% |
Allocations to 512 bytes | 110,034,640 | 79.2% |
Allocations to 4 kbytes | 60 | 0.0% |
Allocations over 4 kbytes | 160 | 0.0% |
Frees | 110,034,531 | |
Inline values | 0 | |
Interpreter increfs | 209,442,800 | 38.6% |
Interpreter decrefs | 292,358,280 | 43.3% |
Increfs | 332,979,014 | 61.4% |
Decrefs | 382,507,567 | 56.7% |
Materialize dict (on request) | 0 | |
Materialize dict (new key) | 0 | |
Materialize dict (too big) | 0 | |
Materialize dict (str subclass) | 0 | |
Method cache hits | 19,201,988 | |
Method cache misses | 312 | |
Method cache collisions | 238 | |
Method cache dunder hits | 217 | |
Method cache dunder misses | 23 |
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,800 | |
Traces created
ⓘThe number of traces that were successfully created. |
60 | 3.3% |
Trace stack overflow
ⓘA trace is truncated because it would require more than 5 stack frames. |
0 | 0.0% |
Trace stack underflow
ⓘA potential trace is abandoned because it pops more frames than it pushes. |
0 | 0.0% |
Trace too long
ⓘA trace is truncated because it is longer than the instruction buffer. |
0 | 0.0% |
Trace too short
ⓘA potential trace is abandoced because it it too short. |
1,740 | 96.7% |
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 |
16,010,080 | |
Uops executed
ⓘThe total number of uops (micro-operations) that were executed |
745,699,540 | 4,657.7% |
Count | Ratio | |
---|---|---|
Optimizer attempts
ⓘThe number of times the trace optimizer (_Py_uop_analyze_and_optimize) was run. |
60 | |
Optimizer successes
ⓘThe number of traces that were successfully optimized. |
60 | 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 | 20 | 33.3% |
<= 64 | 20 | 33.3% |
<= 128 | 0 | 0.0% |
<= 256 | 20 | 33.3% |
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 | 20 | 33.3% |
<= 64 | 20 | 33.3% |
<= 128 | 20 | 33.3% |
trace run length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
<= 2 | 0 | 0.0% |
<= 4 | 0 | 0.0% |
<= 8 | 1,340 | 0.0% |
<= 16 | 0 | 0.0% |
<= 32 | 900 | 0.0% |
<= 64 | 3,207,520 | 20.0% |
<= 128 | 6,398,400 | 40.0% |
uop execution stats
Name | Count | Self | Cumulative | Miss ratio |
---|---|---|---|---|
_LOAD_FAST | 128,017,840 | 17.2% | 17.2% | |
_SET_IP | 89,611,760 | 12.0% | 29.2% | |
_CHECK_VALIDITY | 89,611,760 | 12.0% | 41.2% | |
_STORE_FAST | 83,213,360 | 11.2% | 52.4% | |
_BINARY_OP | 48,012,940 | 6.4% | 58.8% | |
_CHECK_PERIODIC | 28,802,020 | 3.9% | 62.7% | |
_LOAD_CONST_INLINE_BORROW | 19,197,000 | 2.6% | 65.2% | |
_GUARD_TYPE_VERSION | 16,005,220 | 2.1% | 67.4% | |
_CALL_NON_PY_GENERAL | 16,004,320 | 2.1% | 69.5% | |
_CHECK_IS_NOT_PY_CALLABLE | 16,004,320 | 2.1% | 71.7% | |
_LOAD_FAST_3 | 16,004,320 | 2.1% | 73.8% | |
_LOAD_CONST_INLINE_WITH_NULL | 12,797,680 | 1.7% | 75.5% | |
_GUARD_IS_FALSE_POP | 12,796,800 | 1.7% | 77.3% | 25.1% |
_LOAD_CONST_INLINE | 12,796,780 | 1.7% | 79.0% | |
_EXIT_TRACE | 9,608,160 | 1.3% | 80.3% | |
_START_EXECUTOR | 9,608,160 | 1.3% | 81.5% | |
_CHECK_FUNCTION | 9,606,820 | 1.3% | 82.8% | |
_LOAD_ATTR_METHOD_NO_DICT | 9,605,920 | 1.3% | 84.1% | |
_COLD_EXIT | 6,401,920 | 0.9% | 85.0% | |
_GUARD_NOT_EXHAUSTED_RANGE | 6,400,640 | 0.9% | 85.8% | 0.0% |
_ITER_CHECK_RANGE | 6,400,640 | 0.9% | 86.7% | |
_TIER2_RESUME_CHECK | 6,400,640 | 0.9% | 87.6% | |
_CALL_METHOD_DESCRIPTOR_FAST | 6,399,300 | 0.9% | 88.4% | |
_CHECK_ATTR_METHOD_LAZY_DICT | 6,399,300 | 0.9% | 89.3% | |
_ITER_NEXT_RANGE | 6,399,300 | 0.9% | 90.1% | |
_LOAD_ATTR_METHOD_LAZY_DICT | 6,399,300 | 0.9% | 91.0% | |
_LOAD_FAST_7 | 6,399,300 | 0.9% | 91.8% | |
_BINARY_SUBSCR_LIST_INT | 6,398,400 | 0.9% | 92.7% | |
_TO_BOOL_INT | 6,398,400 | 0.9% | 93.6% | |
_UNPACK_SEQUENCE_TUPLE | 6,398,400 | 0.9% | 94.4% | |
_CALL_BUILTIN_FAST | 6,398,400 | 0.9% | 95.3% | |
_COMPARE_OP | 6,398,400 | 0.9% | 96.1% | |
_LOAD_ATTR | 6,398,400 | 0.9% | 97.0% | |
_LOAD_FAST_2 | 6,398,400 | 0.9% | 97.9% | |
_LOAD_FAST_4 | 6,398,400 | 0.9% | 98.7% | |
_LOAD_FAST_5 | 6,398,400 | 0.9% | 99.6% | |
_LOAD_FAST_6 | 3,207,520 | 0.4% | 100.0% | |
_POP_TOP | 900 | 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 |
---|---|---|---|
_CHECK_VALIDITY _STORE_FAST | 64,017,260 | 8.6% | 8.6% |
_STORE_FAST _LOAD_FAST | 57,618,880 | 7.7% | 16.3% |
_SET_IP _BINARY_OP | 48,012,940 | 6.4% | 22.8% |
_BINARY_OP _CHECK_VALIDITY | 48,012,940 | 6.4% | 29.2% |
_LOAD_FAST _SET_IP | 38,407,020 | 5.2% | 34.3% |
_LOAD_FAST _LOAD_FAST | 38,407,000 | 5.2% | 39.5% |
_CHECK_PERIODIC _CHECK_VALIDITY | 28,802,020 | 3.9% | 43.4% |
_LOAD_CONST_INLINE_BORROW _SET_IP | 19,196,100 | 2.6% | 45.9% |
_SET_IP _CHECK_IS_NOT_PY_CALLABLE | 16,004,320 | 2.1% | 48.1% |
_CALL_NON_PY_GENERAL _CHECK_PERIODIC | 16,004,320 | 2.1% | 50.2% |
_CHECK_IS_NOT_PY_CALLABLE _CALL_NON_PY_GENERAL | 16,004,320 | 2.1% | 52.4% |
_LOAD_FAST_3 _SET_IP | 16,004,320 | 2.1% | 54.5% |
_LOAD_FAST _LOAD_CONST_INLINE_BORROW | 12,796,800 | 1.7% | 56.2% |
_CHECK_FUNCTION _LOAD_CONST_INLINE_WITH_NULL | 9,606,820 | 1.3% | 57.5% |
_GUARD_TYPE_VERSION _LOAD_ATTR_METHOD_NO_DICT | 9,605,920 | 1.3% | 58.8% |
_LOAD_ATTR_METHOD_NO_DICT _LOAD_FAST_3 | 9,605,920 | 1.3% | 60.1% |
_LOAD_FAST _GUARD_TYPE_VERSION | 9,605,920 | 1.3% | 61.4% |
_ITER_CHECK_RANGE _GUARD_NOT_EXHAUSTED_RANGE | 6,400,640 | 0.9% | 62.2% |
_START_EXECUTOR _TIER2_RESUME_CHECK | 6,400,640 | 0.9% | 63.1% |
_TIER2_RESUME_CHECK _ITER_CHECK_RANGE | 6,400,640 | 0.9% | 64.0% |
_SET_IP _CALL_METHOD_DESCRIPTOR_FAST | 6,399,300 | 0.9% | 64.8% |
_CALL_METHOD_DESCRIPTOR_FAST _CHECK_PERIODIC | 6,399,300 | 0.9% | 65.7% |
_CHECK_ATTR_METHOD_LAZY_DICT _LOAD_ATTR_METHOD_LAZY_DICT | 6,399,300 | 0.9% | 66.5% |
_GUARD_NOT_EXHAUSTED_RANGE _ITER_NEXT_RANGE | 6,399,300 | 0.9% | 67.4% |
_GUARD_TYPE_VERSION _CHECK_ATTR_METHOD_LAZY_DICT | 6,399,300 | 0.9% | 68.2% |
_ITER_NEXT_RANGE _STORE_FAST | 6,399,300 | 0.9% | 69.1% |
_LOAD_ATTR_METHOD_LAZY_DICT _LOAD_CONST_INLINE_BORROW | 6,399,300 | 0.9% | 70.0% |
_LOAD_FAST_7 _GUARD_TYPE_VERSION | 6,399,300 | 0.9% | 70.8% |
_STORE_FAST _LOAD_FAST_7 | 6,399,300 | 0.9% | 71.7% |
_BINARY_SUBSCR_LIST_INT _STORE_FAST | 6,398,400 | 0.9% | 72.5% |
_TO_BOOL_INT _GUARD_IS_FALSE_POP | 6,398,400 | 0.9% | 73.4% |
_UNPACK_SEQUENCE_TUPLE _STORE_FAST | 6,398,400 | 0.9% | 74.3% |
_SET_IP _CALL_BUILTIN_FAST | 6,398,400 | 0.9% | 75.1% |
_SET_IP _COMPARE_OP | 6,398,400 | 0.9% | 76.0% |
_SET_IP _LOAD_ATTR | 6,398,400 | 0.9% | 76.8% |
_CALL_BUILTIN_FAST _CHECK_PERIODIC | 6,398,400 | 0.9% | 77.7% |
_CHECK_VALIDITY _UNPACK_SEQUENCE_TUPLE | 6,398,400 | 0.9% | 78.5% |
_CHECK_VALIDITY _GUARD_IS_FALSE_POP | 6,398,400 | 0.9% | 79.4% |
_CHECK_VALIDITY _LOAD_FAST | 6,398,400 | 0.9% | 80.3% |
_CHECK_VALIDITY _LOAD_FAST_3 | 6,398,400 | 0.9% | 81.1% |
_COMPARE_OP _CHECK_VALIDITY | 6,398,400 | 0.9% | 82.0% |
_GUARD_IS_FALSE_POP _CHECK_FUNCTION | 6,398,400 | 0.9% | 82.8% |
_LOAD_ATTR _CHECK_VALIDITY | 6,398,400 | 0.9% | 83.7% |
_LOAD_CONST_INLINE _LOAD_FAST | 6,398,400 | 0.9% | 84.5% |
_LOAD_CONST_INLINE_WITH_NULL _LOAD_CONST_INLINE | 6,398,400 | 0.9% | 85.4% |
_LOAD_FAST _BINARY_SUBSCR_LIST_INT | 6,398,400 | 0.9% | 86.3% |
_LOAD_FAST _TO_BOOL_INT | 6,398,400 | 0.9% | 87.1% |
_LOAD_FAST _LOAD_FAST_5 | 6,398,400 | 0.9% | 88.0% |
_LOAD_FAST_2 _LOAD_FAST | 6,398,400 | 0.9% | 88.8% |
_LOAD_FAST_4 _SET_IP | 6,398,400 | 0.9% | 89.7% |
_LOAD_FAST_5 _SET_IP | 6,398,400 | 0.9% | 90.6% |
_STORE_FAST _LOAD_FAST_2 | 6,398,400 | 0.9% | 91.4% |
_STORE_FAST _LOAD_FAST_4 | 6,398,400 | 0.9% | 92.3% |
_LOAD_CONST_INLINE _EXIT_TRACE | 6,398,380 | 0.9% | 93.1% |
_LOAD_CONST_INLINE_WITH_NULL _LOAD_FAST | 6,398,380 | 0.9% | 94.0% |
_LOAD_FAST _LOAD_CONST_INLINE | 6,398,380 | 0.9% | 94.8% |
_GUARD_IS_FALSE_POP _EXIT_TRACE | 3,207,540 | 0.4% | 95.3% |
_LOAD_FAST _LOAD_FAST_6 | 3,207,520 | 0.4% | 95.7% |
_LOAD_FAST_6 _SET_IP | 3,207,520 | 0.4% | 96.1% |
_START_EXECUTOR _LOAD_FAST | 3,207,520 | 0.4% | 96.6% |
_STORE_FAST _CHECK_FUNCTION | 3,207,520 | 0.4% | 97.0% |
_GUARD_IS_FALSE_POP _LOAD_FAST | 3,190,860 | 0.4% | 97.4% |
_STORE_FAST _LOAD_CONST_INLINE_WITH_NULL | 3,190,860 | 0.4% | 97.9% |
_GUARD_NOT_EXHAUSTED_RANGE _EXIT_TRACE | 1,340 | 0.0% | 97.9% |
_POP_TOP _CHECK_FUNCTION | 900 | 0.0% | 97.9% |
_CHECK_VALIDITY _POP_TOP | 900 | 0.0% | 97.9% |
_LOAD_CONST_INLINE_BORROW _EXIT_TRACE | 900 | 0.0% | 97.9% |
_LOAD_CONST_INLINE_WITH_NULL _LOAD_CONST_INLINE_BORROW | 900 | 0.0% | 97.9% |
unsupported opcodes
Opcode | Count |
---|---|
CALL_KW | 1,780 |
CALL | 20 |
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