- benchmark: json_dumps
- fork: python
- ref: 0ac40acec045c4ce780cf7d887fcbe4c661e82b7
- commit hash: 0ac40ac
- commit date: 2024-12-14T17:25:49+02: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 | 34,579,620 | 23.6% | 23.6% | |
LOAD_ATTR_INSTANCE_VALUE | 23,267,580 | 15.9% | 39.6% | 50.5% |
RETURN_VALUE | 11,524,200 | 7.9% | 47.4% | |
LOAD_GLOBAL_BUILTIN | 11,522,940 | 7.9% | 55.3% | |
STORE_FAST | 7,687,560 | 5.3% | 60.6% | |
CALL_NON_PY_GENERAL | 7,683,180 | 5.3% | 65.8% | |
PUSH_NULL | 3,846,120 | 2.6% | 68.4% | |
POP_TOP | 3,846,060 | 2.6% | 71.1% | |
ENTER_EXECUTOR | 3,844,800 | 2.6% | 73.7% | |
LOAD_CONST_IMMORTAL | 3,842,520 | 2.6% | 76.3% | |
LOAD_FAST_LOAD_FAST | 3,841,260 | 2.6% | 79.0% | |
BUILD_TUPLE | 3,841,080 | 2.6% | 81.6% | |
LOAD_SMALL_INT | 3,841,080 | 2.6% | 84.2% | |
LOAD_ATTR_METHOD_NO_DICT | 3,841,080 | 2.6% | 86.8% | |
JUMP_FORWARD | 3,841,020 | 2.6% | 89.5% | |
POP_JUMP_IF_TRUE | 3,841,020 | 2.6% | 92.1% | |
CALL_METHOD_DESCRIPTOR_O | 3,841,020 | 2.6% | 94.7% | |
TO_BOOL_BOOL | 3,841,020 | 2.6% | 97.3% | |
CALL_ISINSTANCE | 3,840,960 | 2.6% | 100.0% | |
GET_ITER | 4,860 | 0.0% | 100.0% | |
JUMP_BACKWARD | 4,860 | 0.0% | 100.0% | |
FOR_ITER_RANGE | 4,860 | 0.0% | 100.0% | |
FOR_ITER_LIST | 4,800 | 0.0% | 100.0% | |
LOAD_GLOBAL_MODULE | 4,080 | 0.0% | 100.0% | |
LOAD_ATTR_MODULE | 4,020 | 0.0% | 100.0% | |
STORE_FAST_STORE_FAST | 3,900 | 0.0% | 100.0% | |
CALL_PY_GENERAL | 3,900 | 0.0% | 100.0% | |
UNPACK_SEQUENCE_TWO_TUPLE | 3,900 | 0.0% | 100.0% | |
RESUME_CHECK | 1,320 | 0.0% | 100.0% | |
INTERPRETER_EXIT | 960 | 0.0% | 100.0% | |
LOAD_ATTR | 280 | 0.0% | 100.0% | |
CALL | 260 | 0.0% | 100.0% | |
CALL_PY_EXACT_ARGS | 240 | 0.0% | 100.0% | |
LOAD_CONST | 120 | 0.0% | 100.0% | |
POP_JUMP_IF_FALSE | 120 | 0.0% | 100.0% | |
LOAD_ATTR_METHOD_WITH_VALUES | 120 | 0.0% | 100.0% | |
TO_BOOL | 100 | 0.0% | 100.0% | |
LOAD_GLOBAL | 100 | 0.0% | 100.0% | |
MAKE_FUNCTION | 60 | 0.0% | 100.0% | |
NOP | 60 | 0.0% | 100.0% | |
CALL_FUNCTION_EX | 60 | 0.0% | 100.0% | |
COPY_FREE_VARS | 60 | 0.0% | 100.0% | |
FOR_ITER | 60 | 0.0% | 100.0% | |
IS_OP | 60 | 0.0% | 100.0% | |
LOAD_DEREF | 60 | 0.0% | 100.0% | |
MAKE_CELL | 60 | 0.0% | 100.0% | |
POP_JUMP_IF_NOT_NONE | 60 | 0.0% | 100.0% | |
SET_FUNCTION_ATTRIBUTE | 60 | 0.0% | 100.0% | |
STORE_DEREF | 60 | 0.0% | 100.0% | |
BINARY_OP_SUBTRACT_FLOAT | 60 | 0.0% | 100.0% | |
BINARY_SUBSCR_TUPLE_INT | 60 | 0.0% | 100.0% | |
CALL_BUILTIN_CLASS | 60 | 0.0% | 100.0% | |
CALL_METHOD_DESCRIPTOR_NOARGS | 60 | 0.0% | 100.0% | |
COMPARE_OP_INT | 60 | 0.0% | 100.0% | |
BINARY_SUBSCR | 20 | 0.0% | 100.0% | |
BINARY_OP | 20 | 0.0% | 100.0% | |
COMPARE_OP | 20 | 0.0% | 100.0% | |
UNPACK_SEQUENCE | 20 | 0.0% | 100.0% |
Pair counts for top 100 opcode pairs
Pairs of specialized operations that deoptimize and are then followed by the corresponding unspecialized instruction are not counted as pairs.
Pair | Count | Self | Cumulative |
---|---|---|---|
LOAD_FAST LOAD_ATTR_INSTANCE_VALUE | 19,204,940 | 13.1% | 13.1% |
LOAD_ATTR_INSTANCE_VALUE LOAD_FAST | 15,363,840 | 10.5% | 23.6% |
PUSH_NULL LOAD_FAST | 3,844,860 | 2.6% | 26.3% |
LOAD_FAST PUSH_NULL | 3,842,160 | 2.6% | 28.9% |
RETURN_VALUE POP_TOP | 3,841,140 | 2.6% | 31.5% |
RETURN_VALUE STORE_FAST | 3,841,140 | 2.6% | 34.1% |
LOAD_FAST LOAD_SMALL_INT | 3,841,080 | 2.6% | 36.8% |
JUMP_FORWARD LOAD_FAST | 3,841,020 | 2.6% | 39.4% |
STORE_FAST JUMP_FORWARD | 3,841,020 | 2.6% | 42.0% |
CALL_NON_PY_GENERAL RETURN_VALUE | 3,841,020 | 2.6% | 44.6% |
CALL_NON_PY_GENERAL STORE_FAST | 3,841,020 | 2.6% | 47.3% |
LOAD_GLOBAL_BUILTIN LOAD_FAST | 3,841,020 | 2.6% | 49.9% |
TO_BOOL_BOOL POP_JUMP_IF_TRUE | 3,841,020 | 2.6% | 52.5% |
POP_TOP ENTER_EXECUTOR | 3,840,960 | 2.6% | 55.2% |
RETURN_VALUE RETURN_VALUE | 3,840,960 | 2.6% | 57.8% |
BUILD_TUPLE CALL_ISINSTANCE | 3,840,960 | 2.6% | 60.4% |
LOAD_FAST CALL_METHOD_DESCRIPTOR_O | 3,840,960 | 2.6% | 63.0% |
LOAD_FAST LOAD_GLOBAL_BUILTIN | 3,840,960 | 2.6% | 65.7% |
LOAD_FAST_LOAD_FAST LOAD_FAST | 3,840,960 | 2.6% | 68.3% |
LOAD_SMALL_INT CALL_NON_PY_GENERAL | 3,840,960 | 2.6% | 70.9% |
POP_JUMP_IF_TRUE LOAD_CONST_IMMORTAL | 3,840,960 | 2.6% | 73.5% |
STORE_FAST LOAD_GLOBAL_BUILTIN | 3,840,960 | 2.6% | 76.2% |
CALL_ISINSTANCE TO_BOOL_BOOL | 3,840,960 | 2.6% | 78.8% |
CALL_METHOD_DESCRIPTOR_O RETURN_VALUE | 3,840,960 | 2.6% | 81.4% |
LOAD_ATTR_INSTANCE_VALUE LOAD_FAST_LOAD_FAST | 3,840,960 | 2.6% | 84.0% |
LOAD_ATTR_INSTANCE_VALUE CALL_NON_PY_GENERAL | 3,840,960 | 2.6% | 86.7% |
LOAD_ATTR_METHOD_NO_DICT LOAD_FAST | 3,840,960 | 2.6% | 89.3% |
LOAD_CONST_IMMORTAL LOAD_ATTR_METHOD_NO_DICT | 3,840,960 | 2.6% | 91.9% |
LOAD_GLOBAL_BUILTIN BUILD_TUPLE | 3,840,960 | 2.6% | 94.5% |
LOAD_GLOBAL_BUILTIN LOAD_GLOBAL_BUILTIN | 3,840,960 | 2.6% | 97.2% |
ENTER_EXECUTOR LOAD_ATTR_INSTANCE_VALUE | 3,840,960 | 2.6% | 99.8% |
LOAD_ATTR_INSTANCE_VALUE LOAD_ATTR_INSTANCE_VALUE | 221,580 | 0.2% | 99.9% |
POP_TOP JUMP_BACKWARD | 4,860 | 0.0% | 100.0% |
LOAD_FAST GET_ITER | 4,860 | 0.0% | 100.0% |
FOR_ITER_RANGE STORE_FAST | 4,800 | 0.0% | 100.0% |
LOAD_ATTR_MODULE PUSH_NULL | 3,960 | 0.0% | 100.0% |
LOAD_GLOBAL_MODULE LOAD_ATTR_MODULE | 3,960 | 0.0% | 100.0% |
GET_ITER FOR_ITER_RANGE | 3,900 | 0.0% | 100.0% |
STORE_FAST_STORE_FAST LOAD_FAST | 3,900 | 0.0% | 100.0% |
UNPACK_SEQUENCE_TWO_TUPLE STORE_FAST_STORE_FAST | 3,900 | 0.0% | 100.0% |
STORE_FAST LOAD_GLOBAL_MODULE | 3,880 | 0.0% | 100.0% |
JUMP_BACKWARD FOR_ITER_LIST | 3,840 | 0.0% | 100.0% |
LOAD_FAST CALL_PY_GENERAL | 3,840 | 0.0% | 100.0% |
CALL_PY_GENERAL ENTER_EXECUTOR | 3,840 | 0.0% | 100.0% |
FOR_ITER_LIST UNPACK_SEQUENCE_TWO_TUPLE | 3,840 | 0.0% | 100.0% |
ENTER_EXECUTOR POP_TOP | 3,840 | 0.0% | 100.0% |
STORE_FAST LOAD_FAST | 1,440 | 0.0% | 100.0% |
LOAD_CONST_IMMORTAL RETURN_VALUE | 1,140 | 0.0% | 100.0% |
RESUME_CHECK LOAD_FAST | 1,140 | 0.0% | 100.0% |
PUSH_NULL CALL_NON_PY_GENERAL | 1,120 | 0.0% | 100.0% |
CACHE RESUME_CHECK | 1,020 | 0.0% | 100.0% |
CALL_NON_PY_GENERAL POP_TOP | 1,020 | 0.0% | 100.0% |
GET_ITER FOR_ITER_LIST | 960 | 0.0% | 100.0% |
RETURN_VALUE INTERPRETER_EXIT | 960 | 0.0% | 100.0% |
JUMP_BACKWARD FOR_ITER_RANGE | 960 | 0.0% | 100.0% |
FOR_ITER_LIST LOAD_CONST_IMMORTAL | 960 | 0.0% | 100.0% |
POP_TOP LOAD_CONST_IMMORTAL | 180 | 0.0% | 100.0% |
STORE_FAST LOAD_CONST_IMMORTAL | 180 | 0.0% | 100.0% |
CALL_PY_EXACT_ARGS RESUME_CHECK | 180 | 0.0% | 100.0% |
LOAD_FAST LOAD_ATTR | 140 | 0.0% | 100.0% |
LOAD_FAST RETURN_VALUE | 120 | 0.0% | 100.0% |
LOAD_FAST LOAD_CONST_IMMORTAL | 120 | 0.0% | 100.0% |
LOAD_CONST_IMMORTAL STORE_FAST | 120 | 0.0% | 100.0% |
LOAD_CONST_IMMORTAL LOAD_CONST_IMMORTAL | 120 | 0.0% | 100.0% |
RESUME_CHECK LOAD_GLOBAL_MODULE | 120 | 0.0% | 100.0% |
CALL CALL_NON_PY_GENERAL | 100 | 0.0% | 100.0% |
PUSH_NULL CALL | 80 | 0.0% | 100.0% |
CALL CALL_PY_EXACT_ARGS | 80 | 0.0% | 100.0% |
LOAD_FAST LOAD_ATTR_METHOD_WITH_VALUES | 80 | 0.0% | 100.0% |
LOAD_FAST_LOAD_FAST CALL_PY_EXACT_ARGS | 80 | 0.0% | 100.0% |
LOAD_GLOBAL LOAD_GLOBAL_MODULE | 80 | 0.0% | 100.0% |
LOAD_ATTR_INSTANCE_VALUE LOAD_ATTR_METHOD_NO_DICT | 80 | 0.0% | 100.0% |
MAKE_FUNCTION SET_FUNCTION_ATTRIBUTE | 60 | 0.0% | 100.0% |
NOP LOAD_FAST | 60 | 0.0% | 100.0% |
POP_TOP LOAD_FAST | 60 | 0.0% | 100.0% |
PUSH_NULL LOAD_FAST_LOAD_FAST | 60 | 0.0% | 100.0% |
TO_BOOL POP_JUMP_IF_FALSE | 60 | 0.0% | 100.0% |
BUILD_TUPLE LOAD_CONST | 60 | 0.0% | 100.0% |
COPY_FREE_VARS RESUME_CHECK | 60 | 0.0% | 100.0% |
FOR_ITER LOAD_FAST | 60 | 0.0% | 100.0% |
IS_OP STORE_FAST | 60 | 0.0% | 100.0% |
JUMP_BACKWARD FOR_ITER | 60 | 0.0% | 100.0% |
LOAD_ATTR LOAD_FAST_LOAD_FAST | 60 | 0.0% | 100.0% |
LOAD_ATTR LOAD_ATTR_INSTANCE_VALUE | 60 | 0.0% | 100.0% |
LOAD_ATTR LOAD_ATTR_MODULE | 60 | 0.0% | 100.0% |
LOAD_CONST MAKE_FUNCTION | 60 | 0.0% | 100.0% |
LOAD_CONST STORE_FAST | 60 | 0.0% | 100.0% |
LOAD_DEREF STORE_FAST | 60 | 0.0% | 100.0% |
LOAD_FAST BUILD_TUPLE | 60 | 0.0% | 100.0% |
LOAD_FAST CALL_FUNCTION_EX | 60 | 0.0% | 100.0% |
LOAD_FAST POP_JUMP_IF_NOT_NONE | 60 | 0.0% | 100.0% |
LOAD_FAST_LOAD_FAST BUILD_TUPLE | 60 | 0.0% | 100.0% |
LOAD_FAST_LOAD_FAST CALL | 60 | 0.0% | 100.0% |
MAKE_CELL RESUME_CHECK | 60 | 0.0% | 100.0% |
POP_JUMP_IF_FALSE LOAD_FAST | 60 | 0.0% | 100.0% |
POP_JUMP_IF_NOT_NONE LOAD_CONST | 60 | 0.0% | 100.0% |
POP_JUMP_IF_TRUE NOP | 60 | 0.0% | 100.0% |
SET_FUNCTION_ATTRIBUTE STORE_FAST | 60 | 0.0% | 100.0% |
STORE_DEREF LOAD_FAST | 60 | 0.0% | 100.0% |
STORE_FAST LOAD_DEREF | 60 | 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 CACHE
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 1,020 | 100.0% |
Successors and predecessors for BINARY_SUBSCR
Predecessors | Count | Percentage |
---|---|---|
LOAD_SMALL_INT | 20 | 100.0% |
Successors | Count | Percentage |
---|---|---|
BINARY_SUBSCR_TUPLE_INT | 20 | 100.0% |
Successors and predecessors for GET_ITER
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 4,860 | 100.0% |
Successors | Count | Percentage |
---|---|---|
FOR_ITER_RANGE | 3,900 | 80.2% |
FOR_ITER_LIST | 960 | 19.8% |
Successors and predecessors for INTERPRETER_EXIT
Predecessors | Count | Percentage |
---|---|---|
RETURN_VALUE | 960 | 100.0% |
Successors and predecessors for MAKE_FUNCTION
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST | 60 | 100.0% |
Successors | Count | Percentage |
---|---|---|
SET_FUNCTION_ATTRIBUTE | 60 | 100.0% |
Successors and predecessors for NOP
Predecessors | Count | Percentage |
---|---|---|
POP_JUMP_IF_TRUE | 60 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 60 | 100.0% |
Successors and predecessors for POP_TOP
Predecessors | Count | Percentage |
---|---|---|
RETURN_VALUE | 3,841,140 | 99.9% |
ENTER_EXECUTOR | 3,840 | 0.1% |
CALL_NON_PY_GENERAL | 1,020 | 0.0% |
CALL_METHOD_DESCRIPTOR_O | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
ENTER_EXECUTOR | 3,840,960 | 99.9% |
JUMP_BACKWARD | 4,860 | 0.1% |
LOAD_CONST_IMMORTAL | 180 | 0.0% |
LOAD_FAST | 60 | 0.0% |
Successors and predecessors for PUSH_NULL
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 3,842,160 | 99.9% |
LOAD_ATTR_MODULE | 3,960 | 0.1% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 3,844,860 | 100.0% |
CALL_NON_PY_GENERAL | 1,120 | 0.0% |
CALL | 80 | 0.0% |
LOAD_FAST_LOAD_FAST | 60 | 0.0% |
Successors and predecessors for RETURN_VALUE
Predecessors | Count | Percentage |
---|---|---|
CALL_NON_PY_GENERAL | 3,841,020 | 33.3% |
RETURN_VALUE | 3,840,960 | 33.3% |
CALL_METHOD_DESCRIPTOR_O | 3,840,960 | 33.3% |
LOAD_CONST_IMMORTAL | 1,140 | 0.0% |
LOAD_FAST | 120 | 0.0% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 3,841,140 | 33.3% |
STORE_FAST | 3,841,140 | 33.3% |
RETURN_VALUE | 3,840,960 | 33.3% |
INTERPRETER_EXIT | 960 | 0.0% |
Successors and predecessors for TO_BOOL
Predecessors | Count | Percentage |
---|---|---|
LOAD_ATTR_INSTANCE_VALUE | 60 | 60.0% |
TO_BOOL | 20 | 20.0% |
LOAD_FAST | 20 | 20.0% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 60 | 60.0% |
TO_BOOL | 20 | 20.0% |
TO_BOOL_BOOL | 20 | 20.0% |
Successors and predecessors for BINARY_OP
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 20 | 100.0% |
Successors | Count | Percentage |
---|---|---|
BINARY_OP_SUBTRACT_FLOAT | 20 | 100.0% |
Successors and predecessors for BUILD_TUPLE
Predecessors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_BUILTIN | 3,840,960 | 100.0% |
LOAD_FAST | 60 | 0.0% |
LOAD_FAST_LOAD_FAST | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
CALL_ISINSTANCE | 3,840,960 | 100.0% |
LOAD_CONST | 60 | 0.0% |
CALL_METHOD_DESCRIPTOR_O | 40 | 0.0% |
CALL | 20 | 0.0% |
Successors and predecessors for CALL
Predecessors | Count | Percentage |
---|---|---|
PUSH_NULL | 80 | 30.8% |
LOAD_FAST_LOAD_FAST | 60 | 23.1% |
LOAD_CONST_IMMORTAL | 40 | 15.4% |
BUILD_TUPLE | 20 | 7.7% |
LOAD_FAST | 20 | 7.7% |
Successors | Count | Percentage |
---|---|---|
CALL_NON_PY_GENERAL | 100 | 38.5% |
CALL_PY_EXACT_ARGS | 80 | 30.8% |
CALL_BUILTIN_CLASS | 20 | 7.7% |
CALL_METHOD_DESCRIPTOR_NOARGS | 20 | 7.7% |
CALL_METHOD_DESCRIPTOR_O | 20 | 7.7% |
Successors and predecessors for CALL_FUNCTION_EX
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 60 | 100.0% |
Successors and predecessors for COMPARE_OP
Predecessors | Count | Percentage |
---|---|---|
LOAD_SMALL_INT | 20 | 100.0% |
Successors | Count | Percentage |
---|---|---|
COMPARE_OP_INT | 20 | 100.0% |
Successors and predecessors for COPY_FREE_VARS
Predecessors | Count | Percentage |
---|---|---|
CALL_PY_EXACT_ARGS | 60 | 100.0% |
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 60 | 100.0% |
Successors and predecessors for FOR_ITER
Predecessors | Count | Percentage |
---|---|---|
JUMP_BACKWARD | 60 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 60 | 100.0% |
Successors and predecessors for IS_OP
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST_IMMORTAL | 60 | 100.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 60 | 100.0% |
Successors and predecessors for JUMP_BACKWARD
Predecessors | Count | Percentage |
---|---|---|
POP_TOP | 4,860 | 100.0% |
Successors | Count | Percentage |
---|---|---|
FOR_ITER_LIST | 3,840 | 79.0% |
FOR_ITER_RANGE | 960 | 19.8% |
FOR_ITER | 60 | 1.2% |
Successors and predecessors for JUMP_FORWARD
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 3,841,020 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 3,841,020 | 100.0% |
Successors and predecessors for LOAD_ATTR
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 140 | 50.0% |
LOAD_GLOBAL_MODULE | 60 | 21.4% |
LOAD_ATTR_INSTANCE_VALUE | 40 | 14.3% |
LOAD_ATTR | 20 | 7.1% |
LOAD_FAST_LOAD_FAST | 20 | 7.1% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 60 | 21.4% |
LOAD_ATTR_INSTANCE_VALUE | 60 | 21.4% |
LOAD_ATTR_MODULE | 60 | 21.4% |
LOAD_ATTR_METHOD_NO_DICT | 40 | 14.3% |
LOAD_ATTR_METHOD_WITH_VALUES | 40 | 14.3% |
Successors and predecessors for LOAD_CONST
Predecessors | Count | Percentage |
---|---|---|
BUILD_TUPLE | 60 | 50.0% |
POP_JUMP_IF_NOT_NONE | 60 | 50.0% |
Successors | Count | Percentage |
---|---|---|
MAKE_FUNCTION | 60 | 50.0% |
STORE_FAST | 60 | 50.0% |
Successors and predecessors for LOAD_DEREF
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 60 | 100.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 60 | 100.0% |
Successors and predecessors for LOAD_FAST
Predecessors | Count | Percentage |
---|---|---|
LOAD_ATTR_INSTANCE_VALUE | 15,363,840 | 44.4% |
PUSH_NULL | 3,844,860 | 11.1% |
JUMP_FORWARD | 3,841,020 | 11.1% |
LOAD_GLOBAL_BUILTIN | 3,841,020 | 11.1% |
LOAD_FAST_LOAD_FAST | 3,840,960 | 11.1% |
Successors | Count | Percentage |
---|---|---|
LOAD_ATTR_INSTANCE_VALUE | 19,204,940 | 55.5% |
PUSH_NULL | 3,842,160 | 11.1% |
LOAD_SMALL_INT | 3,841,080 | 11.1% |
CALL_METHOD_DESCRIPTOR_O | 3,840,960 | 11.1% |
LOAD_GLOBAL_BUILTIN | 3,840,960 | 11.1% |
Successors and predecessors for LOAD_FAST_LOAD_FAST
Predecessors | Count | Percentage |
---|---|---|
LOAD_ATTR_INSTANCE_VALUE | 3,840,960 | 100.0% |
PUSH_NULL | 60 | 0.0% |
LOAD_ATTR | 60 | 0.0% |
LOAD_ATTR_METHOD_NO_DICT | 60 | 0.0% |
LOAD_ATTR_METHOD_WITH_VALUES | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 3,840,960 | 100.0% |
CALL_PY_EXACT_ARGS | 80 | 0.0% |
BUILD_TUPLE | 60 | 0.0% |
CALL | 60 | 0.0% |
CALL_NON_PY_GENERAL | 40 | 0.0% |
Successors and predecessors for LOAD_GLOBAL
Predecessors | Count | Percentage |
---|---|---|
RESUME_CHECK | 60 | 60.0% |
POP_JUMP_IF_FALSE | 20 | 20.0% |
STORE_FAST | 20 | 20.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 80 | 80.0% |
LOAD_GLOBAL_BUILTIN | 20 | 20.0% |
Successors and predecessors for LOAD_SMALL_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 3,841,080 | 100.0% |
Successors | Count | Percentage |
---|---|---|
CALL_NON_PY_GENERAL | 3,840,960 | 100.0% |
BINARY_SUBSCR_TUPLE_INT | 40 | 0.0% |
COMPARE_OP_INT | 40 | 0.0% |
BINARY_SUBSCR | 20 | 0.0% |
COMPARE_OP | 20 | 0.0% |
Successors and predecessors for MAKE_CELL
Predecessors | Count | Percentage |
---|---|---|
CALL_PY_GENERAL | 60 | 100.0% |
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 60 | 100.0% |
Successors and predecessors for POP_JUMP_IF_FALSE
Predecessors | Count | Percentage |
---|---|---|
TO_BOOL | 60 | 50.0% |
COMPARE_OP_INT | 60 | 50.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 60 | 50.0% |
LOAD_GLOBAL_BUILTIN | 40 | 33.3% |
LOAD_GLOBAL | 20 | 16.7% |
Successors and predecessors for POP_JUMP_IF_NOT_NONE
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 60 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST | 60 | 100.0% |
Successors and predecessors for POP_JUMP_IF_TRUE
Predecessors | Count | Percentage |
---|---|---|
TO_BOOL_BOOL | 3,841,020 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST_IMMORTAL | 3,840,960 | 100.0% |
NOP | 60 | 0.0% |
Successors and predecessors for SET_FUNCTION_ATTRIBUTE
Predecessors | Count | Percentage |
---|---|---|
MAKE_FUNCTION | 60 | 100.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 60 | 100.0% |
Successors and predecessors for STORE_DEREF
Predecessors | Count | Percentage |
---|---|---|
CALL_NON_PY_GENERAL | 60 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 60 | 100.0% |
Successors and predecessors for STORE_FAST
Predecessors | Count | Percentage |
---|---|---|
RETURN_VALUE | 3,841,140 | 50.0% |
CALL_NON_PY_GENERAL | 3,841,020 | 50.0% |
FOR_ITER_RANGE | 4,800 | 0.1% |
LOAD_CONST_IMMORTAL | 120 | 0.0% |
IS_OP | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
JUMP_FORWARD | 3,841,020 | 50.0% |
LOAD_GLOBAL_BUILTIN | 3,840,960 | 50.0% |
LOAD_GLOBAL_MODULE | 3,880 | 0.1% |
LOAD_FAST | 1,440 | 0.0% |
LOAD_CONST_IMMORTAL | 180 | 0.0% |
Successors and predecessors for STORE_FAST_STORE_FAST
Predecessors | Count | Percentage |
---|---|---|
UNPACK_SEQUENCE_TWO_TUPLE | 3,900 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 3,900 | 100.0% |
Successors and predecessors for UNPACK_SEQUENCE
Predecessors | Count | Percentage |
---|---|---|
CALL_METHOD_DESCRIPTOR_NOARGS | 20 | 100.0% |
Successors | Count | Percentage |
---|---|---|
UNPACK_SEQUENCE_TWO_TUPLE | 20 | 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 |
---|---|---|
STORE_FAST | 60 | 100.0% |
Successors and predecessors for BINARY_SUBSCR_TUPLE_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_SMALL_INT | 40 | 66.7% |
BINARY_SUBSCR | 20 | 33.3% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 60 | 100.0% |
Successors and predecessors for CALL_BUILTIN_CLASS
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 40 | 66.7% |
CALL | 20 | 33.3% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 60 | 100.0% |
Successors and predecessors for CALL_ISINSTANCE
Predecessors | Count | Percentage |
---|---|---|
BUILD_TUPLE | 3,840,960 | 100.0% |
Successors | Count | Percentage |
---|---|---|
TO_BOOL_BOOL | 3,840,960 | 100.0% |
Successors and predecessors for CALL_METHOD_DESCRIPTOR_NOARGS
Predecessors | Count | Percentage |
---|---|---|
LOAD_ATTR_METHOD_NO_DICT | 40 | 66.7% |
CALL | 20 | 33.3% |
Successors | Count | Percentage |
---|---|---|
UNPACK_SEQUENCE_TWO_TUPLE | 40 | 66.7% |
UNPACK_SEQUENCE | 20 | 33.3% |
Successors and predecessors for CALL_METHOD_DESCRIPTOR_O
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 3,840,960 | 100.0% |
BUILD_TUPLE | 40 | 0.0% |
CALL | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
RETURN_VALUE | 3,840,960 | 100.0% |
POP_TOP | 60 | 0.0% |
Successors and predecessors for CALL_NON_PY_GENERAL
Predecessors | Count | Percentage |
---|---|---|
LOAD_SMALL_INT | 3,840,960 | 50.0% |
LOAD_ATTR_INSTANCE_VALUE | 3,840,960 | 50.0% |
PUSH_NULL | 1,120 | 0.0% |
CALL | 100 | 0.0% |
LOAD_FAST_LOAD_FAST | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
RETURN_VALUE | 3,841,020 | 50.0% |
STORE_FAST | 3,841,020 | 50.0% |
POP_TOP | 1,020 | 0.0% |
LOAD_FAST | 60 | 0.0% |
STORE_DEREF | 60 | 0.0% |
Successors and predecessors for CALL_PY_EXACT_ARGS
Predecessors | Count | Percentage |
---|---|---|
CALL | 80 | 33.3% |
LOAD_FAST_LOAD_FAST | 80 | 33.3% |
LOAD_ATTR_INSTANCE_VALUE | 40 | 16.7% |
LOAD_CONST_IMMORTAL | 40 | 16.7% |
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 180 | 75.0% |
COPY_FREE_VARS | 60 | 25.0% |
Successors and predecessors for CALL_PY_GENERAL
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 3,840 | 98.5% |
LOAD_CONST_IMMORTAL | 40 | 1.0% |
CALL | 20 | 0.5% |
Successors | Count | Percentage |
---|---|---|
ENTER_EXECUTOR | 3,840 | 98.5% |
MAKE_CELL | 60 | 1.5% |
Successors and predecessors for COMPARE_OP_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_SMALL_INT | 40 | 66.7% |
COMPARE_OP | 20 | 33.3% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 60 | 100.0% |
Successors and predecessors for FOR_ITER_LIST
Predecessors | Count | Percentage |
---|---|---|
JUMP_BACKWARD | 3,840 | 80.0% |
GET_ITER | 960 | 20.0% |
Successors | Count | Percentage |
---|---|---|
UNPACK_SEQUENCE_TWO_TUPLE | 3,840 | 80.0% |
LOAD_CONST_IMMORTAL | 960 | 20.0% |
Successors and predecessors for FOR_ITER_RANGE
Predecessors | Count | Percentage |
---|---|---|
GET_ITER | 3,900 | 80.2% |
JUMP_BACKWARD | 960 | 19.8% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 4,800 | 98.8% |
LOAD_FAST | 60 | 1.2% |
Successors and predecessors for LOAD_ATTR_INSTANCE_VALUE
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 19,204,940 | 82.5% |
ENTER_EXECUTOR | 3,840,960 | 16.5% |
LOAD_ATTR_INSTANCE_VALUE | 221,580 | 1.0% |
LOAD_ATTR | 60 | 0.0% |
LOAD_FAST_LOAD_FAST | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 15,363,840 | 66.0% |
LOAD_FAST_LOAD_FAST | 3,840,960 | 16.5% |
CALL_NON_PY_GENERAL | 3,840,960 | 16.5% |
LOAD_ATTR_INSTANCE_VALUE | 221,580 | 1.0% |
LOAD_ATTR_METHOD_NO_DICT | 80 | 0.0% |
Successors and predecessors for LOAD_ATTR_METHOD_NO_DICT
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST_IMMORTAL | 3,840,960 | 100.0% |
LOAD_ATTR_INSTANCE_VALUE | 80 | 0.0% |
LOAD_ATTR | 40 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 3,840,960 | 100.0% |
LOAD_FAST_LOAD_FAST | 60 | 0.0% |
CALL_METHOD_DESCRIPTOR_NOARGS | 40 | 0.0% |
CALL | 20 | 0.0% |
Successors and predecessors for LOAD_ATTR_METHOD_WITH_VALUES
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 80 | 66.7% |
LOAD_ATTR | 40 | 33.3% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 60 | 50.0% |
LOAD_FAST_LOAD_FAST | 60 | 50.0% |
Successors and predecessors for LOAD_ATTR_MODULE
Predecessors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_MODULE | 3,960 | 98.5% |
LOAD_ATTR | 60 | 1.5% |
Successors | Count | Percentage |
---|---|---|
PUSH_NULL | 3,960 | 98.5% |
STORE_FAST | 60 | 1.5% |
Successors and predecessors for LOAD_CONST_IMMORTAL
Predecessors | Count | Percentage |
---|---|---|
POP_JUMP_IF_TRUE | 3,840,960 | 100.0% |
FOR_ITER_LIST | 960 | 0.0% |
POP_TOP | 180 | 0.0% |
STORE_FAST | 180 | 0.0% |
LOAD_FAST | 120 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_ATTR_METHOD_NO_DICT | 3,840,960 | 100.0% |
RETURN_VALUE | 1,140 | 0.0% |
STORE_FAST | 120 | 0.0% |
LOAD_CONST_IMMORTAL | 120 | 0.0% |
IS_OP | 60 | 0.0% |
Successors and predecessors for LOAD_GLOBAL_BUILTIN
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 3,840,960 | 33.3% |
STORE_FAST | 3,840,960 | 33.3% |
LOAD_GLOBAL_BUILTIN | 3,840,960 | 33.3% |
POP_JUMP_IF_FALSE | 40 | 0.0% |
LOAD_GLOBAL | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 3,841,020 | 33.3% |
BUILD_TUPLE | 3,840,960 | 33.3% |
LOAD_GLOBAL_BUILTIN | 3,840,960 | 33.3% |
Successors and predecessors for LOAD_GLOBAL_MODULE
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 3,880 | 95.1% |
RESUME_CHECK | 120 | 2.9% |
LOAD_GLOBAL | 80 | 2.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_ATTR_MODULE | 3,960 | 97.1% |
LOAD_ATTR | 60 | 1.5% |
LOAD_FAST_LOAD_FAST | 60 | 1.5% |
Successors and predecessors for RESUME_CHECK
Predecessors | Count | Percentage |
---|---|---|
CACHE | 1,020 | 77.3% |
CALL_PY_EXACT_ARGS | 180 | 13.6% |
COPY_FREE_VARS | 60 | 4.5% |
MAKE_CELL | 60 | 4.5% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 1,140 | 86.4% |
LOAD_GLOBAL_MODULE | 120 | 9.1% |
LOAD_GLOBAL | 60 | 4.5% |
Successors and predecessors for TO_BOOL_BOOL
Predecessors | Count | Percentage |
---|---|---|
CALL_ISINSTANCE | 3,840,960 | 100.0% |
LOAD_FAST | 40 | 0.0% |
TO_BOOL | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_TRUE | 3,841,020 | 100.0% |
Successors and predecessors for UNPACK_SEQUENCE_TWO_TUPLE
Predecessors | Count | Percentage |
---|---|---|
FOR_ITER_LIST | 3,840 | 98.5% |
CALL_METHOD_DESCRIPTOR_NOARGS | 40 | 1.0% |
UNPACK_SEQUENCE | 20 | 0.5% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST_STORE_FAST | 3,900 | 100.0% |
Successors and predecessors for ENTER_EXECUTOR
Predecessors | Count | Percentage |
---|---|---|
POP_TOP | 3,840,960 | 99.9% |
CALL_PY_GENERAL | 3,840 | 0.1% |
Successors | Count | Percentage |
---|---|---|
LOAD_ATTR_INSTANCE_VALUE | 3,840,960 | 99.9% |
POP_TOP | 3,840 | 0.1% |
Specialization stats by family
specialization stats for BINARY_OP family
Kind | Count | Ratio |
---|---|---|
hit
ⓘSpecialized instructions that complete. |
60 | 75.0% |
Success | Count | Ratio |
---|---|---|
Success | 20 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for BINARY_SUBSCR family
Kind | Count | Ratio |
---|---|---|
hit
ⓘSpecialized instructions that complete. |
60 | 75.0% |
Success | Count | Ratio |
---|---|---|
Success | 20 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for CALL family
Kind | Count | Ratio |
---|---|---|
hit
ⓘSpecialized instructions that complete. |
7,682,340 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 260 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for COMPARE_OP family
Kind | Count | Ratio |
---|---|---|
hit
ⓘSpecialized instructions that complete. |
60 | 75.0% |
Success | Count | Ratio |
---|---|---|
Success | 20 | 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. |
60 | 0.6% |
hit
ⓘSpecialized instructions that complete. |
9,660 | 99.4% |
specialization stats for LOAD_ATTR family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
60 | 0.0% |
hit
ⓘSpecialized instructions that complete. |
15,368,340 | 56.7% |
miss
ⓘSpecialized instructions that deopt. |
11,744,460 | 43.3% |
Success | Count | Ratio |
---|---|---|
Success | 221,780 | 100.0% |
Failure | 20 | 0.0% |
specialization stats for LOAD_GLOBAL family
Kind | Count | Ratio |
---|---|---|
hit
ⓘSpecialized instructions that complete. |
11,527,020 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 100 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for TO_BOOL family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
60 | 0.0% |
hit
ⓘSpecialized instructions that complete. |
3,841,020 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 20 | 50.0% |
Failure | 20 | 50.0% |
Failure kind | Count | Ratio |
---|---|---|
sequence | 20 | 100.0% |
specialization stats for UNPACK_SEQUENCE family
Kind | Count | Ratio |
---|---|---|
hit
ⓘSpecialized instructions that complete. |
3,900 | 99.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. |
84,549,240 | 57.8% |
Not specialized
ⓘInstructions that could be specialized but aren't, e.g. |
880 | 0.0% |
Specialized hits
ⓘSpecialized instructions, e.g. |
49,963,380 | 34.2% |
Specialized misses
ⓘSpecialized instructions, e.g. |
11,744,460 | 8.0% |
Breakdown of deferred (not specialized) instruction counts by family
Name | Count | Ratio |
---|---|---|
TO_BOOL | 60 | 33.3% |
FOR_ITER | 60 | 33.3% |
LOAD_ATTR | 60 | 33.3% |
BINARY_SLICE | 0 | 0.0% |
STORE_SLICE | 0 | 0.0% |
CACHE | 0 | 0.0% |
BINARY_SUBSCR | 0 | 0.0% |
GET_ITER | 0 | 0.0% |
INTERPRETER_EXIT | 0 | 0.0% |
MAKE_FUNCTION | 0 | 0.0% |
Breakdown of misses (specialized deopts) instruction counts by family
Name | Count | Ratio |
---|---|---|
LOAD_ATTR_INSTANCE_VALUE | 11,744,460 | 100.0% |
CACHE | 0 | 0.0% |
GET_ITER | 0 | 0.0% |
INTERPRETER_EXIT | 0 | 0.0% |
MAKE_FUNCTION | 0 | 0.0% |
NOP | 0 | 0.0% |
POP_TOP | 0 | 0.0% |
PUSH_NULL | 0 | 0.0% |
RETURN_VALUE | 0 | 0.0% |
BUILD_TUPLE | 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 | 1,020 | 0.0% |
Calls to Python functions inlined | 11,523,180 | 100.0% |
Calls via PyEval_EvalFrame (total) | 1,020 | 0.0% |
Calls via PyEval_EvalFrame (vector) | 1,020 | 0.0% |
Calls via PyEval_EvalFrame (generator) | 0 | 0.0% |
Calls via PyEval_EvalFrame (legacy) | 0 | 0.0% |
Calls via PyEval_EvalFrame (function vectorcall) | 1,020 | 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) | 0 | 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 | 11,524,200 | 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 | 37,668,880 | 25.9% |
Frees to freelist | 37,668,840 | |
Allocations | 108,011,860 | 74.1% |
Allocations to 512 bytes | 108,011,860 | 74.1% |
Allocations to 4 kbytes | 0 | 0.0% |
Allocations over 4 kbytes | 0 | 0.0% |
Frees | 108,011,766 | |
Inline values | 0 | |
Interpreter mortal increfs | 165,188,400 | 20.5% |
Interpreter mortal decrefs | 199,022,200 | 24.2% |
Mortal increfs | 321,857,003 | 40.0% |
Mortal decrefs | 423,620,791 | 51.5% |
Interpreter immortal increfs | 80,661,060 | 10.0% |
Interpreter immortal decrefs | 77,567,040 | 9.4% |
Immortal increfs | 236,199,063 | 29.4% |
Immortal decrefs | 122,906,415 | 14.9% |
Materialize dict (on request) | 0 | |
Materialize dict (new key) | 0 | |
Materialize dict (too big) | 0 | |
Materialize dict (str subclass) | 0 | |
Method cache hits | 11,744,657 | |
Method cache misses | 23 | |
Method cache collisions | 17 | |
Method cache dunder hits | 7,681,920 | |
Method cache dunder misses | 0 |
GC collections and effectiveness
Collected/visits gives some measure of efficiency.
Generation | Collections | Objects collected | Object visits | Reachable from roots | Not reachable from roots |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 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. |
0 | |
Traces created
ⓘThe number of traces that were successfully created. |
0 | |
Trace stack overflow
ⓘA trace is truncated because it would require more than 5 stack frames. |
0 | |
Trace stack underflow
ⓘA potential trace is abandoned because it pops more frames than it pushes. |
0 | |
Trace too long
ⓘA trace is truncated because it is longer than the instruction buffer. |
0 | |
Trace too short
ⓘA potential trace is abandoned because it it too short. |
0 | |
Inner loop found
ⓘA trace is truncated because it has an inner loop |
0 | |
Recursive call
ⓘA trace is truncated because it has a recursive call. |
0 | |
Low confidence
ⓘA trace is abandoned because the likelihood of the jump to top being taken is too low. |
0 | |
Executors invalidated
ⓘThe number of executors that were invalidated due to watched dictionary changes. |
0 | |
Traces executed
ⓘThe number of traces that were executed |
7,681,920 | |
Uops executed
ⓘThe total number of uops (micro-operations) that were executed |
568,419,840 | 7,399.5% |
Count | Ratio | |
---|---|---|
Optimizer attempts
ⓘThe number of times the trace optimizer (_Py_uop_analyze_and_optimize) was run. |
0 | |
Optimizer successes
ⓘThe number of traces that were successfully optimized. |
0 | |
Optimizer no memory
ⓘThe number of optimizations that failed due to no memory. |
0 | |
Remove globals builtins changed
ⓘThe builtins changed during optimization |
0 | |
Remove globals incorrect keys
ⓘThe keys in the globals dictionary aren't what was expected |
0 |
trace length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 |
optimized trace length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 |
trace run length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
<= 2 | 0 | 0.0% |
<= 4 | 0 | 0.0% |
<= 8 | 0 | 0.0% |
<= 16 | 0 | 0.0% |
<= 32 | 0 | 0.0% |
<= 64 | 0 | 0.0% |
<= 128 | 0 | 0.0% |
<= 256 | 3,840,960 | 50.0% |
uop execution stats
Name | Count | Self | Cumulative | Miss ratio |
---|---|---|---|---|
_TO_BOOL_BOOL | 34,568,640 | 6.1% | 6.1% | |
_SET_IP | 34,564,800 | 6.1% | 12.2% | |
_LOAD_FAST_0 | 30,727,680 | 5.4% | 17.6% | |
_CHECK_VALIDITY | 26,886,720 | 4.7% | 22.3% | |
_GUARD_TYPE_VERSION | 26,886,720 | 4.7% | 27.0% | |
_LOAD_CONST_INLINE | 26,882,880 | 4.7% | 31.8% | |
_LOAD_ATTR_INSTANCE_VALUE_0 | 23,045,760 | 4.1% | 35.8% | 16.7% |
_CHECK_MANAGED_OBJECT_HAS_VALUES | 23,045,760 | 4.1% | 39.9% | |
_GUARD_IS_TRUE_POP | 23,045,760 | 4.1% | 43.9% | |
_GUARD_IS_NONE_POP | 19,204,800 | 3.4% | 47.3% | |
_GUARD_IS_FALSE_POP | 15,363,840 | 2.7% | 50.0% | |
_CHECK_FUNCTION | 15,360,000 | 2.7% | 52.7% | |
_LOAD_FAST_1 | 15,360,000 | 2.7% | 55.4% | |
_LOAD_CONST_INLINE_BORROW | 11,522,880 | 2.0% | 57.4% | |
_LOAD_FAST | 11,522,880 | 2.0% | 59.5% | |
_PUSH_FRAME | 11,519,040 | 2.0% | 61.5% | |
_SAVE_RETURN_OFFSET | 11,519,040 | 2.0% | 63.5% | |
_RESUME_CHECK | 7,681,920 | 1.4% | 64.9% | |
_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT | 7,681,920 | 1.4% | 66.2% | |
_GUARD_KEYS_VERSION | 7,681,920 | 1.4% | 67.6% | |
_LOAD_ATTR_METHOD_WITH_VALUES | 7,681,920 | 1.4% | 68.9% | |
_LOAD_CONST_INLINE_WITH_NULL | 7,681,920 | 1.4% | 70.3% | |
_LOAD_FAST_2 | 7,681,920 | 1.4% | 71.6% | |
_LOAD_FAST_3 | 7,681,920 | 1.4% | 73.0% | |
_MAKE_WARM | 7,681,920 | 1.4% | 74.3% | |
_START_EXECUTOR | 7,681,920 | 1.4% | 75.7% | |
_STORE_FAST_3 | 7,678,080 | 1.4% | 77.0% | |
_GUARD_NOT_EXHAUSTED_RANGE | 3,840,960 | 0.7% | 77.7% | 0.1% |
_MAKE_FUNCTION | 3,840,960 | 0.7% | 78.4% | |
_UNARY_NEGATIVE | 3,840,960 | 0.7% | 79.1% | |
_BUILD_MAP | 3,840,960 | 0.7% | 79.7% | |
_BUILD_TUPLE | 3,840,960 | 0.7% | 80.4% | |
_LOAD_CONST | 3,840,960 | 0.7% | 81.1% | |
_SET_FUNCTION_ATTRIBUTE | 3,840,960 | 0.7% | 81.8% | |
_CALL_ISINSTANCE | 3,840,960 | 0.7% | 82.4% | |
_CHECK_ATTR_CLASS | 3,840,960 | 0.7% | 83.1% | |
_CHECK_FUNCTION_EXACT_ARGS | 3,840,960 | 0.7% | 83.8% | |
_CHECK_FUNCTION_VERSION | 3,840,960 | 0.7% | 84.5% | |
_CHECK_FUNCTION_VERSION_KW | 3,840,960 | 0.7% | 85.1% | |
_CHECK_PERIODIC | 3,840,960 | 0.7% | 85.8% | |
_CHECK_STACK_SPACE_OPERAND | 3,840,960 | 0.7% | 86.5% | |
_DEOPT | 3,840,960 | 0.7% | 87.2% | |
_GUARD_IS_NOT_NONE_POP | 3,840,960 | 0.7% | 87.8% | |
_INIT_CALL_PY_EXACT_ARGS_1 | 3,840,960 | 0.7% | 88.5% | |
_ITER_CHECK_RANGE | 3,840,960 | 0.7% | 89.2% | |
_LOAD_ATTR_CLASS_0 | 3,840,960 | 0.7% | 89.9% | |
_LOAD_FAST_4 | 3,840,960 | 0.7% | 90.5% | |
_LOAD_FAST_5 | 3,840,960 | 0.7% | 91.2% | |
_LOAD_FAST_6 | 3,840,960 | 0.7% | 91.9% | |
_LOAD_FAST_7 | 3,840,960 | 0.7% | 92.6% | |
_PY_FRAME_KW | 3,840,960 | 0.7% | 93.2% | |
_STORE_FAST_4 | 3,840,960 | 0.7% | 93.9% | |
_STORE_FAST_5 | 3,840,960 | 0.7% | 94.6% | |
_STORE_FAST_6 | 3,840,960 | 0.7% | 95.3% | |
_TIER2_RESUME_CHECK | 3,840,960 | 0.7% | 95.9% | |
_TO_BOOL | 3,840,960 | 0.7% | 96.6% | |
_PUSH_NULL | 3,837,120 | 0.7% | 97.3% | |
_CHECK_FUNCTION_VERSION_INLINE | 3,837,120 | 0.7% | 98.0% | |
_DYNAMIC_EXIT | 3,837,120 | 0.7% | 98.6% | |
_ITER_NEXT_RANGE | 3,837,120 | 0.7% | 99.3% | |
_PY_FRAME_GENERAL | 3,837,120 | 0.7% | 100.0% | |
_EXIT_TRACE | 3,840 | 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 |
---|---|---|---|
_TO_BOOL_BOOL _GUARD_IS_TRUE_POP | 23,045,760 | 4.1% | 4.1% |
_CHECK_MANAGED_OBJECT_HAS_VALUES _LOAD_ATTR_INSTANCE_VALUE_0 | 23,045,760 | 4.1% | 8.1% |
_GUARD_TYPE_VERSION _CHECK_MANAGED_OBJECT_HAS_VALUES | 23,045,760 | 4.1% | 12.2% |
_LOAD_FAST_0 _GUARD_TYPE_VERSION | 23,045,760 | 4.1% | 16.2% |
_TO_BOOL_BOOL _GUARD_IS_FALSE_POP | 11,522,880 | 2.0% | 18.2% |
_CHECK_FUNCTION _LOAD_CONST_INLINE | 11,519,040 | 2.0% | 20.3% |
_SAVE_RETURN_OFFSET _PUSH_FRAME | 11,519,040 | 2.0% | 22.3% |
_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT _GUARD_KEYS_VERSION | 7,681,920 | 1.4% | 23.6% |
_GUARD_IS_NONE_POP _LOAD_FAST | 7,681,920 | 1.4% | 25.0% |
_GUARD_KEYS_VERSION _LOAD_ATTR_METHOD_WITH_VALUES | 7,681,920 | 1.4% | 26.4% |
_LOAD_ATTR_INSTANCE_VALUE_0 _TO_BOOL_BOOL | 7,681,920 | 1.4% | 27.7% |
_LOAD_CONST_INLINE _SET_IP | 7,681,920 | 1.4% | 29.1% |
_LOAD_FAST_1 _LOAD_CONST_INLINE_BORROW | 7,681,920 | 1.4% | 30.4% |
_LOAD_FAST_2 _TO_BOOL_BOOL | 7,681,920 | 1.4% | 31.8% |
_START_EXECUTOR _MAKE_WARM | 7,681,920 | 1.4% | 33.1% |
_MAKE_FUNCTION _CHECK_VALIDITY | 3,840,960 | 0.7% | 33.8% |
_UNARY_NEGATIVE _CHECK_VALIDITY | 3,840,960 | 0.7% | 34.5% |
_BUILD_MAP _CHECK_VALIDITY | 3,840,960 | 0.7% | 35.1% |
_BUILD_TUPLE _LOAD_CONST | 3,840,960 | 0.7% | 35.8% |
_LOAD_CONST _SET_IP | 3,840,960 | 0.7% | 36.5% |
_SET_FUNCTION_ATTRIBUTE _STORE_FAST_5 | 3,840,960 | 0.7% | 37.2% |
_CALL_ISINSTANCE _CHECK_VALIDITY | 3,840,960 | 0.7% | 37.8% |
_RESUME_CHECK _CHECK_FUNCTION | 3,840,960 | 0.7% | 38.5% |
_RESUME_CHECK _LOAD_FAST_0 | 3,840,960 | 0.7% | 39.2% |
_SET_IP _MAKE_FUNCTION | 3,840,960 | 0.7% | 39.9% |
_SET_IP _UNARY_NEGATIVE | 3,840,960 | 0.7% | 40.5% |
_SET_IP _BUILD_MAP | 3,840,960 | 0.7% | 41.2% |
_SET_IP _CALL_ISINSTANCE | 3,840,960 | 0.7% | 41.9% |
_SET_IP _CHECK_FUNCTION_VERSION | 3,840,960 | 0.7% | 42.6% |
_SET_IP _CHECK_FUNCTION_VERSION_KW | 3,840,960 | 0.7% | 43.2% |
_SET_IP _CHECK_PERIODIC | 3,840,960 | 0.7% | 43.9% |
_SET_IP _TO_BOOL | 3,840,960 | 0.7% | 44.6% |
_CHECK_ATTR_CLASS _LOAD_ATTR_CLASS_0 | 3,840,960 | 0.7% | 45.3% |
_CHECK_FUNCTION _LOAD_CONST_INLINE_WITH_NULL | 3,840,960 | 0.7% | 45.9% |
_CHECK_FUNCTION_EXACT_ARGS _CHECK_STACK_SPACE_OPERAND | 3,840,960 | 0.7% | 46.6% |
_CHECK_FUNCTION_VERSION _CHECK_FUNCTION_EXACT_ARGS | 3,840,960 | 0.7% | 47.3% |
_CHECK_FUNCTION_VERSION_KW _PY_FRAME_KW | 3,840,960 | 0.7% | 48.0% |
_CHECK_PERIODIC _CHECK_VALIDITY | 3,840,960 | 0.7% | 48.7% |
_CHECK_STACK_SPACE_OPERAND _INIT_CALL_PY_EXACT_ARGS_1 | 3,840,960 | 0.7% | 49.3% |
_CHECK_VALIDITY _BUILD_TUPLE | 3,840,960 | 0.7% | 50.0% |
_CHECK_VALIDITY _SET_FUNCTION_ATTRIBUTE | 3,840,960 | 0.7% | 50.7% |
_CHECK_VALIDITY _RESUME_CHECK | 3,840,960 | 0.7% | 51.4% |
_CHECK_VALIDITY _TO_BOOL_BOOL | 3,840,960 | 0.7% | 52.0% |
_CHECK_VALIDITY _GUARD_IS_FALSE_POP | 3,840,960 | 0.7% | 52.7% |
_CHECK_VALIDITY _ITER_CHECK_RANGE | 3,840,960 | 0.7% | 53.4% |
_CHECK_VALIDITY _STORE_FAST_3 | 3,840,960 | 0.7% | 54.1% |
_GUARD_IS_FALSE_POP _CHECK_FUNCTION | 3,840,960 | 0.7% | 54.7% |
_GUARD_IS_FALSE_POP _LOAD_FAST | 3,840,960 | 0.7% | 55.4% |
_GUARD_IS_FALSE_POP _LOAD_FAST_0 | 3,840,960 | 0.7% | 56.1% |
_GUARD_IS_FALSE_POP _LOAD_FAST_2 | 3,840,960 | 0.7% | 56.8% |
_GUARD_IS_NONE_POP _LOAD_FAST_0 | 3,840,960 | 0.7% | 57.4% |
_GUARD_IS_NONE_POP _LOAD_FAST_6 | 3,840,960 | 0.7% | 58.1% |
_GUARD_IS_NONE_POP _LOAD_FAST_7 | 3,840,960 | 0.7% | 58.8% |
_GUARD_IS_NOT_NONE_POP _LOAD_CONST_INLINE_WITH_NULL | 3,840,960 | 0.7% | 59.5% |
_GUARD_IS_TRUE_POP _SET_IP | 3,840,960 | 0.7% | 60.1% |
_GUARD_IS_TRUE_POP _CHECK_FUNCTION | 3,840,960 | 0.7% | 60.8% |
_GUARD_IS_TRUE_POP _LOAD_CONST_INLINE | 3,840,960 | 0.7% | 61.5% |
_GUARD_IS_TRUE_POP _LOAD_FAST_3 | 3,840,960 | 0.7% | 62.2% |
_GUARD_IS_TRUE_POP _LOAD_FAST_4 | 3,840,960 | 0.7% | 62.8% |
_GUARD_IS_TRUE_POP _LOAD_FAST_5 | 3,840,960 | 0.7% | 63.5% |
_GUARD_TYPE_VERSION _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT | 3,840,960 | 0.7% | 64.2% |
_INIT_CALL_PY_EXACT_ARGS_1 _SAVE_RETURN_OFFSET | 3,840,960 | 0.7% | 64.9% |
_ITER_CHECK_RANGE _GUARD_NOT_EXHAUSTED_RANGE | 3,840,960 | 0.7% | 65.5% |
_LOAD_ATTR_CLASS_0 _LOAD_CONST_INLINE | 3,840,960 | 0.7% | 66.2% |
_LOAD_ATTR_INSTANCE_VALUE_0 _DEOPT | 3,840,960 | 0.7% | 66.9% |
_LOAD_ATTR_INSTANCE_VALUE_0 _GUARD_IS_NONE_POP | 3,840,960 | 0.7% | 67.6% |
_LOAD_ATTR_INSTANCE_VALUE_0 _LOAD_CONST_INLINE_BORROW | 3,840,960 | 0.7% | 68.2% |
_LOAD_ATTR_INSTANCE_VALUE_0 _STORE_FAST_6 | 3,840,960 | 0.7% | 68.9% |
_LOAD_ATTR_METHOD_WITH_VALUES _LOAD_FAST_0 | 3,840,960 | 0.7% | 69.6% |
_LOAD_ATTR_METHOD_WITH_VALUES _LOAD_FAST_1 | 3,840,960 | 0.7% | 70.3% |
_LOAD_CONST_INLINE _GUARD_IS_NOT_NONE_POP | 3,840,960 | 0.7% | 70.9% |
_LOAD_CONST_INLINE _GUARD_TYPE_VERSION | 3,840,960 | 0.7% | 71.6% |
_LOAD_CONST_INLINE _LOAD_CONST_INLINE | 3,840,960 | 0.7% | 72.3% |
_LOAD_CONST_INLINE _STORE_FAST_4 | 3,840,960 | 0.7% | 73.0% |
_LOAD_CONST_INLINE_BORROW _SET_IP | 3,840,960 | 0.7% | 73.7% |
_LOAD_CONST_INLINE_BORROW _CHECK_ATTR_CLASS | 3,840,960 | 0.7% | 74.3% |
_LOAD_CONST_INLINE_BORROW _LOAD_CONST_INLINE | 3,840,960 | 0.7% | 75.0% |
_LOAD_CONST_INLINE_WITH_NULL _LOAD_FAST_1 | 3,840,960 | 0.7% | 75.7% |
_LOAD_CONST_INLINE_WITH_NULL _LOAD_FAST_3 | 3,840,960 | 0.7% | 76.4% |
_LOAD_FAST _TO_BOOL_BOOL | 3,840,960 | 0.7% | 77.0% |
_LOAD_FAST _SET_IP | 3,840,960 | 0.7% | 77.7% |
_LOAD_FAST _GUARD_IS_NONE_POP | 3,840,960 | 0.7% | 78.4% |
_LOAD_FAST_0 _SET_IP | 3,840,960 | 0.7% | 79.1% |
_LOAD_FAST_0 _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT | 3,840,960 | 0.7% | 79.7% |
_LOAD_FAST_1 _TO_BOOL_BOOL | 3,840,960 | 0.7% | 80.4% |
_LOAD_FAST_3 _TO_BOOL_BOOL | 3,840,960 | 0.7% | 81.1% |
_LOAD_FAST_3 _LOAD_FAST_0 | 3,840,960 | 0.7% | 81.8% |
_LOAD_FAST_4 _TO_BOOL_BOOL | 3,840,960 | 0.7% | 82.4% |
_LOAD_FAST_5 _GUARD_IS_NONE_POP | 3,840,960 | 0.7% | 83.1% |
_LOAD_FAST_6 _GUARD_IS_NONE_POP | 3,840,960 | 0.7% | 83.8% |
_LOAD_FAST_7 _GUARD_IS_NONE_POP | 3,840,960 | 0.7% | 84.5% |
_MAKE_WARM _SET_IP | 3,840,960 | 0.7% | 85.1% |
_MAKE_WARM _TIER2_RESUME_CHECK | 3,840,960 | 0.7% | 85.8% |
_PUSH_FRAME _RESUME_CHECK | 3,840,960 | 0.7% | 86.5% |
_PUSH_FRAME _CHECK_VALIDITY | 3,840,960 | 0.7% | 87.2% |
_PY_FRAME_KW _SAVE_RETURN_OFFSET | 3,840,960 | 0.7% | 87.8% |
_STORE_FAST_3 _LOAD_FAST_0 | 3,840,960 | 0.7% | 88.5% |
_STORE_FAST_4 _LOAD_FAST_0 | 3,840,960 | 0.7% | 89.2% |
_STORE_FAST_5 _LOAD_FAST_0 | 3,840,960 | 0.7% | 89.9% |
_STORE_FAST_6 _LOAD_FAST_2 | 3,840,960 | 0.7% | 90.5% |
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-12-15