- benchmark: fannkuch
- fork: python
- ref: 22a442181d5f1ac496dac08e24fd852de404882f
- commit hash: 22a4421
- commit date: 2025-01-11T19:27:47+00:00
Execution counts for Tier 1 instructions.
The "miss ratio" column shows the percentage of times the instruction executed that it deoptimized. When this happens, the base unspecialized instruction is not counted.
Name | Count | Self | Cumulative | Miss ratio |
---|---|---|---|---|
LOAD_SMALL_INT | 6,533,760 | 13.2% | 13.2% | |
LOAD_FAST | 6,411,480 | 12.9% | 26.1% | |
LOAD_FAST_LOAD_FAST | 4,098,360 | 8.3% | 34.3% | |
STORE_FAST | 3,994,560 | 8.1% | 42.4% | |
ENTER_EXECUTOR | 3,685,980 | 7.4% | 49.8% | |
BINARY_SUBSCR_LIST_INT | 2,744,880 | 5.5% | 55.4% | |
POP_JUMP_IF_FALSE | 2,581,800 | 5.2% | 60.6% | |
BINARY_OP_ADD_INT | 2,518,200 | 5.1% | 65.6% | |
LOAD_CONST_IMMORTAL | 2,088,240 | 4.2% | 69.8% | |
COMPARE_OP_INT | 1,844,640 | 3.7% | 73.6% | |
PUSH_NULL | 1,558,020 | 3.1% | 76.7% | |
COPY | 1,557,600 | 3.1% | 79.8% | |
SWAP | 1,557,600 | 3.1% | 83.0% | |
CALL_BUILTIN_FAST | 1,557,600 | 3.1% | 86.1% | |
BINARY_SUBSCR | 1,187,600 | 2.4% | 88.5% | |
POP_TOP | 779,160 | 1.6% | 90.1% | |
BINARY_OP_SUBTRACT_INT | 778,980 | 1.6% | 91.7% | |
STORE_SUBSCR_LIST_INT | 778,860 | 1.6% | 93.2% | |
TO_BOOL_INT | 737,100 | 1.5% | 94.7% | |
STORE_SLICE | 695,880 | 1.4% | 96.1% | |
BUILD_SLICE | 695,880 | 1.4% | 97.5% | |
NOT_TAKEN | 491,880 | 1.0% | 98.5% | |
LOAD_CONST | 491,520 | 1.0% | 99.5% | |
JUMP_BACKWARD | 245,820 | 0.5% | 100.0% | |
LOAD_ATTR | 440 | 0.0% | 100.0% | |
RETURN_VALUE | 420 | 0.0% | 100.0% | |
RESUME_CHECK | 420 | 0.0% | 100.0% | |
CALL | 380 | 0.0% | 100.0% | |
CALL_BUILTIN_CLASS | 360 | 0.0% | 100.0% | |
CALL_NON_PY_GENERAL | 360 | 0.0% | 100.0% | |
LOAD_GLOBAL_BUILTIN | 360 | 0.0% | 100.0% | |
CALL_PY_EXACT_ARGS | 240 | 0.0% | 100.0% | |
LOAD_ATTR_INSTANCE_VALUE | 240 | 0.0% | 100.0% | |
LOAD_GLOBAL_MODULE | 240 | 0.0% | 100.0% | |
LOAD_GLOBAL | 200 | 0.0% | 100.0% | |
LOAD_ATTR_MODULE | 180 | 0.0% | 100.0% | |
NOP | 120 | 0.0% | 100.0% | |
BUILD_TUPLE | 120 | 0.0% | 100.0% | |
LOAD_ATTR_METHOD_NO_DICT | 120 | 0.0% | 100.0% | |
LOAD_ATTR_METHOD_WITH_VALUES | 120 | 0.0% | 100.0% | |
TO_BOOL | 100 | 0.0% | 100.0% | |
INTERPRETER_EXIT | 60 | 0.0% | 100.0% | |
MAKE_FUNCTION | 60 | 0.0% | 100.0% | |
POP_ITER | 60 | 0.0% | 100.0% | |
BINARY_OP | 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% | |
JUMP_FORWARD | 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% | |
POP_JUMP_IF_TRUE | 60 | 0.0% | 100.0% | |
SET_FUNCTION_ATTRIBUTE | 60 | 0.0% | 100.0% | |
STORE_DEREF | 60 | 0.0% | 100.0% | |
STORE_FAST_STORE_FAST | 60 | 0.0% | 100.0% | |
BINARY_OP_SUBTRACT_FLOAT | 60 | 0.0% | 100.0% | |
BINARY_SUBSCR_TUPLE_INT | 60 | 0.0% | 100.0% | |
CALL_METHOD_DESCRIPTOR_NOARGS | 60 | 0.0% | 100.0% | |
CALL_METHOD_DESCRIPTOR_O | 60 | 0.0% | 100.0% | |
CALL_PY_GENERAL | 60 | 0.0% | 100.0% | |
TO_BOOL_BOOL | 60 | 0.0% | 100.0% | |
UNPACK_SEQUENCE_TWO_TUPLE | 60 | 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_SMALL_INT | 3,705,840 | 7.5% | 7.5% |
LOAD_SMALL_INT BINARY_OP_ADD_INT | 2,518,180 | 5.1% | 12.5% |
COMPARE_OP_INT POP_JUMP_IF_FALSE | 1,844,640 | 3.7% | 16.3% |
BINARY_OP_ADD_INT STORE_FAST | 1,822,260 | 3.7% | 19.9% |
ENTER_EXECUTOR ENTER_EXECUTOR | 1,719,900 | 3.5% | 23.4% |
STORE_FAST LOAD_FAST | 1,679,340 | 3.4% | 26.8% |
STORE_FAST ENTER_EXECUTOR | 1,576,560 | 3.2% | 30.0% |
BINARY_SUBSCR_LIST_INT LOAD_SMALL_INT | 1,557,600 | 3.1% | 33.1% |
LOAD_SMALL_INT BINARY_SUBSCR_LIST_INT | 1,187,280 | 2.4% | 35.5% |
BINARY_SUBSCR_LIST_INT STORE_FAST | 1,187,280 | 2.4% | 37.9% |
POP_JUMP_IF_FALSE LOAD_FAST | 1,168,620 | 2.4% | 40.2% |
LOAD_FAST_LOAD_FAST COMPARE_OP_INT | 1,065,720 | 2.1% | 42.4% |
POP_JUMP_IF_FALSE LOAD_FAST_LOAD_FAST | 1,023,660 | 2.1% | 44.5% |
LOAD_FAST PUSH_NULL | 779,100 | 1.6% | 46.0% |
LOAD_SMALL_INT BINARY_OP_SUBTRACT_INT | 778,960 | 1.6% | 47.6% |
LOAD_SMALL_INT COMPARE_OP_INT | 778,900 | 1.6% | 49.2% |
PUSH_NULL LOAD_FAST_LOAD_FAST | 778,860 | 1.6% | 50.7% |
POP_TOP LOAD_FAST_LOAD_FAST | 778,800 | 1.6% | 52.3% |
PUSH_NULL LOAD_SMALL_INT | 778,800 | 1.6% | 53.9% |
COPY COPY | 778,800 | 1.6% | 55.4% |
COPY BINARY_SUBSCR_LIST_INT | 778,800 | 1.6% | 57.0% |
LOAD_FAST_LOAD_FAST PUSH_NULL | 778,800 | 1.6% | 58.6% |
LOAD_FAST_LOAD_FAST COPY | 778,800 | 1.6% | 60.1% |
LOAD_FAST_LOAD_FAST BINARY_SUBSCR_LIST_INT | 778,800 | 1.6% | 61.7% |
LOAD_SMALL_INT CALL_BUILTIN_FAST | 778,800 | 1.6% | 63.3% |
SWAP SWAP | 778,800 | 1.6% | 64.9% |
SWAP STORE_SUBSCR_LIST_INT | 778,800 | 1.6% | 66.4% |
BINARY_OP_SUBTRACT_INT SWAP | 778,800 | 1.6% | 68.0% |
CALL_BUILTIN_FAST POP_TOP | 778,800 | 1.6% | 69.6% |
CALL_BUILTIN_FAST CALL_BUILTIN_FAST | 778,800 | 1.6% | 71.1% |
STORE_SUBSCR_LIST_INT LOAD_FAST_LOAD_FAST | 778,800 | 1.6% | 72.7% |
ENTER_EXECUTOR LOAD_FAST | 737,160 | 1.5% | 74.2% |
LOAD_FAST TO_BOOL_INT | 737,100 | 1.5% | 75.7% |
TO_BOOL_INT POP_JUMP_IF_FALSE | 737,100 | 1.5% | 77.2% |
ENTER_EXECUTOR LOAD_FAST_LOAD_FAST | 737,040 | 1.5% | 78.6% |
LOAD_FAST LOAD_CONST_IMMORTAL | 696,000 | 1.4% | 80.0% |
LOAD_CONST_IMMORTAL LOAD_CONST_IMMORTAL | 696,000 | 1.4% | 81.4% |
STORE_SLICE LOAD_FAST | 695,880 | 1.4% | 82.9% |
BINARY_SUBSCR LOAD_FAST | 695,880 | 1.4% | 84.3% |
BUILD_SLICE BINARY_SUBSCR | 695,880 | 1.4% | 85.7% |
LOAD_FAST_LOAD_FAST LOAD_CONST_IMMORTAL | 695,880 | 1.4% | 87.1% |
BINARY_OP_ADD_INT STORE_SLICE | 695,880 | 1.4% | 88.5% |
LOAD_CONST_IMMORTAL BUILD_SLICE | 695,880 | 1.4% | 89.9% |
LOAD_CONST_IMMORTAL LOAD_FAST | 695,880 | 1.4% | 91.3% |
NOT_TAKEN LOAD_FAST | 491,880 | 1.0% | 92.3% |
ENTER_EXECUTOR NOT_TAKEN | 491,880 | 1.0% | 93.2% |
LOAD_SMALL_INT STORE_FAST | 491,460 | 1.0% | 94.2% |
STORE_FAST LOAD_SMALL_INT | 491,460 | 1.0% | 95.2% |
BINARY_SUBSCR STORE_FAST | 491,400 | 1.0% | 96.2% |
LOAD_CONST BINARY_SUBSCR | 491,400 | 1.0% | 97.2% |
LOAD_FAST LOAD_CONST | 491,400 | 1.0% | 98.2% |
POP_JUMP_IF_FALSE ENTER_EXECUTOR | 389,520 | 0.8% | 99.0% |
STORE_FAST JUMP_BACKWARD | 245,760 | 0.5% | 99.5% |
JUMP_BACKWARD LOAD_FAST | 245,700 | 0.5% | 100.0% |
LOAD_FAST STORE_FAST | 960 | 0.0% | 100.0% |
STORE_FAST LOAD_FAST_LOAD_FAST | 900 | 0.0% | 100.0% |
BINARY_SUBSCR BINARY_SUBSCR | 300 | 0.0% | 100.0% |
LOAD_FAST LOAD_ATTR | 260 | 0.0% | 100.0% |
PUSH_NULL CALL_NON_PY_GENERAL | 200 | 0.0% | 100.0% |
POP_TOP LOAD_CONST_IMMORTAL | 180 | 0.0% | 100.0% |
RETURN_VALUE POP_TOP | 180 | 0.0% | 100.0% |
RETURN_VALUE STORE_FAST | 180 | 0.0% | 100.0% |
LOAD_FAST RETURN_VALUE | 180 | 0.0% | 100.0% |
STORE_FAST LOAD_CONST_IMMORTAL | 180 | 0.0% | 100.0% |
CALL_BUILTIN_CLASS STORE_FAST | 180 | 0.0% | 100.0% |
CALL_PY_EXACT_ARGS RESUME_CHECK | 180 | 0.0% | 100.0% |
LOAD_CONST_IMMORTAL RETURN_VALUE | 180 | 0.0% | 100.0% |
RESUME_CHECK LOAD_FAST | 180 | 0.0% | 100.0% |
LOAD_FAST LOAD_ATTR_INSTANCE_VALUE | 140 | 0.0% | 100.0% |
CACHE RESUME_CHECK | 120 | 0.0% | 100.0% |
NOP LOAD_FAST | 120 | 0.0% | 100.0% |
POP_TOP LOAD_FAST | 120 | 0.0% | 100.0% |
CALL CALL_BUILTIN_CLASS | 120 | 0.0% | 100.0% |
CALL CALL_NON_PY_GENERAL | 120 | 0.0% | 100.0% |
LOAD_ATTR STORE_FAST | 120 | 0.0% | 100.0% |
LOAD_GLOBAL LOAD_GLOBAL_BUILTIN | 120 | 0.0% | 100.0% |
BINARY_OP_SUBTRACT_INT STORE_FAST | 120 | 0.0% | 100.0% |
CALL_BUILTIN_CLASS CALL_BUILTIN_CLASS | 120 | 0.0% | 100.0% |
CALL_NON_PY_GENERAL POP_TOP | 120 | 0.0% | 100.0% |
LOAD_ATTR_MODULE PUSH_NULL | 120 | 0.0% | 100.0% |
LOAD_CONST_IMMORTAL STORE_FAST | 120 | 0.0% | 100.0% |
LOAD_GLOBAL_BUILTIN LOAD_FAST | 120 | 0.0% | 100.0% |
LOAD_GLOBAL_BUILTIN LOAD_GLOBAL_BUILTIN | 120 | 0.0% | 100.0% |
LOAD_GLOBAL_MODULE LOAD_ATTR_MODULE | 120 | 0.0% | 100.0% |
RESUME_CHECK LOAD_GLOBAL_MODULE | 120 | 0.0% | 100.0% |
PUSH_NULL CALL | 100 | 0.0% | 100.0% |
CALL CALL_PY_EXACT_ARGS | 80 | 0.0% | 100.0% |
LOAD_FAST CALL_BUILTIN_CLASS | 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% |
STORE_FAST LOAD_GLOBAL_BUILTIN | 80 | 0.0% | 100.0% |
LOAD_ATTR_INSTANCE_VALUE LOAD_ATTR_METHOD_NO_DICT | 80 | 0.0% | 100.0% |
RESUME_CHECK LOAD_GLOBAL | 80 | 0.0% | 100.0% |
MAKE_FUNCTION SET_FUNCTION_ATTRIBUTE | 60 | 0.0% | 100.0% |
POP_ITER LOAD_FAST | 60 | 0.0% | 100.0% |
POP_TOP JUMP_BACKWARD | 60 | 0.0% | 100.0% |
PUSH_NULL LOAD_FAST | 60 | 0.0% | 100.0% |
RETURN_VALUE INTERPRETER_EXIT | 60 | 0.0% | 100.0% |
TO_BOOL POP_JUMP_IF_FALSE | 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 STORE_SLICE
Predecessors | Count | Percentage |
---|---|---|
BINARY_OP_ADD_INT | 695,880 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 695,880 | 100.0% |
Successors and predecessors for CACHE
Successors | Count | Percentage |
---|---|---|
RESUME_CHECK | 120 | 100.0% |
Successors and predecessors for BINARY_SUBSCR
Predecessors | Count | Percentage |
---|---|---|
BUILD_SLICE | 695,880 | 58.6% |
LOAD_CONST | 491,400 | 41.4% |
BINARY_SUBSCR | 300 | 0.0% |
LOAD_SMALL_INT | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 695,880 | 58.6% |
STORE_FAST | 491,400 | 41.4% |
BINARY_SUBSCR | 300 | 0.0% |
BINARY_SUBSCR_TUPLE_INT | 20 | 0.0% |
Successors and predecessors for INTERPRETER_EXIT
Predecessors | Count | Percentage |
---|---|---|
RETURN_VALUE | 60 | 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 | 50.0% |
STORE_FAST | 60 | 50.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 120 | 100.0% |
Successors and predecessors for NOT_TAKEN
Predecessors | Count | Percentage |
---|---|---|
ENTER_EXECUTOR | 491,880 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 491,880 | 100.0% |
Successors and predecessors for POP_ITER
Predecessors | Count | Percentage |
---|---|---|
FOR_ITER | 60 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 60 | 100.0% |
Successors and predecessors for POP_TOP
Predecessors | Count | Percentage |
---|---|---|
CALL_BUILTIN_FAST | 778,800 | 100.0% |
RETURN_VALUE | 180 | 0.0% |
CALL_NON_PY_GENERAL | 120 | 0.0% |
CALL_METHOD_DESCRIPTOR_O | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 778,800 | 100.0% |
LOAD_CONST_IMMORTAL | 180 | 0.0% |
LOAD_FAST | 120 | 0.0% |
JUMP_BACKWARD | 60 | 0.0% |
Successors and predecessors for PUSH_NULL
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 779,100 | 50.0% |
LOAD_FAST_LOAD_FAST | 778,800 | 50.0% |
LOAD_ATTR_MODULE | 120 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 778,860 | 50.0% |
LOAD_SMALL_INT | 778,800 | 50.0% |
CALL_NON_PY_GENERAL | 200 | 0.0% |
CALL | 100 | 0.0% |
LOAD_FAST | 60 | 0.0% |
Successors and predecessors for RETURN_VALUE
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 180 | 42.9% |
LOAD_CONST_IMMORTAL | 180 | 42.9% |
CALL_NON_PY_GENERAL | 60 | 14.3% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 180 | 42.9% |
STORE_FAST | 180 | 42.9% |
INTERPRETER_EXIT | 60 | 14.3% |
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_SMALL_INT | 40 | 66.7% |
LOAD_FAST | 20 | 33.3% |
Successors | Count | Percentage |
---|---|---|
BINARY_OP_ADD_INT | 20 | 33.3% |
BINARY_OP_SUBTRACT_FLOAT | 20 | 33.3% |
BINARY_OP_SUBTRACT_INT | 20 | 33.3% |
Successors and predecessors for BUILD_SLICE
Predecessors | Count | Percentage |
---|---|---|
LOAD_CONST_IMMORTAL | 695,880 | 100.0% |
Successors | Count | Percentage |
---|---|---|
BINARY_SUBSCR | 695,880 | 100.0% |
Successors and predecessors for BUILD_TUPLE
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 60 | 50.0% |
LOAD_FAST_LOAD_FAST | 60 | 50.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST | 60 | 50.0% |
CALL_METHOD_DESCRIPTOR_O | 40 | 33.3% |
CALL | 20 | 16.7% |
Successors and predecessors for CALL
Predecessors | Count | Percentage |
---|---|---|
PUSH_NULL | 100 | 26.3% |
LOAD_FAST_LOAD_FAST | 60 | 15.8% |
CALL_BUILTIN_CLASS | 60 | 15.8% |
LOAD_FAST | 40 | 10.5% |
LOAD_CONST_IMMORTAL | 40 | 10.5% |
Successors | Count | Percentage |
---|---|---|
CALL_BUILTIN_CLASS | 120 | 31.6% |
CALL_NON_PY_GENERAL | 120 | 31.6% |
CALL_PY_EXACT_ARGS | 80 | 21.1% |
CALL_METHOD_DESCRIPTOR_NOARGS | 20 | 5.3% |
CALL_METHOD_DESCRIPTOR_O | 20 | 5.3% |
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
Predecessors | Count | Percentage |
---|---|---|
COPY | 778,800 | 50.0% |
LOAD_FAST_LOAD_FAST | 778,800 | 50.0% |
Successors | Count | Percentage |
---|---|---|
COPY | 778,800 | 50.0% |
BINARY_SUBSCR_LIST_INT | 778,800 | 50.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 |
---|---|---|
POP_ITER | 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 |
---|---|---|
STORE_FAST | 245,760 | 100.0% |
POP_TOP | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 245,700 | 100.0% |
FOR_ITER | 60 | 0.0% |
LOAD_FAST_LOAD_FAST | 60 | 0.0% |
Successors and predecessors for JUMP_FORWARD
Predecessors | Count | Percentage |
---|---|---|
STORE_FAST | 60 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 60 | 100.0% |
Successors and predecessors for LOAD_ATTR
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 260 | 59.1% |
LOAD_ATTR | 60 | 13.6% |
LOAD_GLOBAL_MODULE | 60 | 13.6% |
LOAD_ATTR_INSTANCE_VALUE | 40 | 9.1% |
LOAD_FAST_LOAD_FAST | 20 | 4.5% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 120 | 27.3% |
LOAD_ATTR | 60 | 13.6% |
LOAD_FAST_LOAD_FAST | 60 | 13.6% |
LOAD_ATTR_INSTANCE_VALUE | 60 | 13.6% |
LOAD_ATTR_MODULE | 60 | 13.6% |
Successors and predecessors for LOAD_CONST
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 491,400 | 100.0% |
BUILD_TUPLE | 60 | 0.0% |
POP_JUMP_IF_NOT_NONE | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
BINARY_SUBSCR | 491,400 | 100.0% |
MAKE_FUNCTION | 60 | 0.0% |
STORE_FAST | 60 | 0.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 |
---|---|---|
STORE_FAST | 1,679,340 | 26.2% |
POP_JUMP_IF_FALSE | 1,168,620 | 18.2% |
ENTER_EXECUTOR | 737,160 | 11.5% |
STORE_SLICE | 695,880 | 10.9% |
BINARY_SUBSCR | 695,880 | 10.9% |
Successors | Count | Percentage |
---|---|---|
LOAD_SMALL_INT | 3,705,840 | 57.8% |
PUSH_NULL | 779,100 | 12.2% |
TO_BOOL_INT | 737,100 | 11.5% |
LOAD_CONST_IMMORTAL | 696,000 | 10.9% |
LOAD_CONST | 491,400 | 7.7% |
Successors and predecessors for LOAD_FAST_LOAD_FAST
Predecessors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 1,023,660 | 25.0% |
PUSH_NULL | 778,860 | 19.0% |
POP_TOP | 778,800 | 19.0% |
STORE_SUBSCR_LIST_INT | 778,800 | 19.0% |
ENTER_EXECUTOR | 737,040 | 18.0% |
Successors | Count | Percentage |
---|---|---|
COMPARE_OP_INT | 1,065,720 | 26.0% |
PUSH_NULL | 778,800 | 19.0% |
COPY | 778,800 | 19.0% |
BINARY_SUBSCR_LIST_INT | 778,800 | 19.0% |
LOAD_CONST_IMMORTAL | 695,880 | 17.0% |
Successors and predecessors for LOAD_GLOBAL
Predecessors | Count | Percentage |
---|---|---|
RESUME_CHECK | 80 | 40.0% |
STORE_FAST | 60 | 30.0% |
LOAD_GLOBAL_BUILTIN | 60 | 30.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_GLOBAL_BUILTIN | 120 | 60.0% |
LOAD_GLOBAL_MODULE | 80 | 40.0% |
Successors and predecessors for LOAD_SMALL_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 3,705,840 | 56.7% |
BINARY_SUBSCR_LIST_INT | 1,557,600 | 23.8% |
PUSH_NULL | 778,800 | 11.9% |
STORE_FAST | 491,460 | 7.5% |
LOAD_GLOBAL_BUILTIN | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
BINARY_OP_ADD_INT | 2,518,180 | 38.5% |
BINARY_SUBSCR_LIST_INT | 1,187,280 | 18.2% |
BINARY_OP_SUBTRACT_INT | 778,960 | 11.9% |
COMPARE_OP_INT | 778,900 | 11.9% |
CALL_BUILTIN_FAST | 778,800 | 11.9% |
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 |
---|---|---|
COMPARE_OP_INT | 1,844,640 | 71.4% |
TO_BOOL_INT | 737,100 | 28.5% |
TO_BOOL | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 1,168,620 | 45.3% |
LOAD_FAST_LOAD_FAST | 1,023,660 | 39.6% |
ENTER_EXECUTOR | 389,520 | 15.1% |
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 | 60 | 100.0% |
Successors | Count | Percentage |
---|---|---|
NOP | 60 | 100.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 |
---|---|---|
BINARY_OP_ADD_INT | 1,822,260 | 45.6% |
BINARY_SUBSCR_LIST_INT | 1,187,280 | 29.7% |
LOAD_SMALL_INT | 491,460 | 12.3% |
BINARY_SUBSCR | 491,400 | 12.3% |
LOAD_FAST | 960 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 1,679,340 | 42.0% |
ENTER_EXECUTOR | 1,576,560 | 39.5% |
LOAD_SMALL_INT | 491,460 | 12.3% |
JUMP_BACKWARD | 245,760 | 6.2% |
LOAD_FAST_LOAD_FAST | 900 | 0.0% |
Successors and predecessors for STORE_FAST_STORE_FAST
Predecessors | Count | Percentage |
---|---|---|
UNPACK_SEQUENCE_TWO_TUPLE | 60 | 100.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 60 | 100.0% |
Successors and predecessors for SWAP
Predecessors | Count | Percentage |
---|---|---|
SWAP | 778,800 | 50.0% |
BINARY_OP_SUBTRACT_INT | 778,800 | 50.0% |
Successors | Count | Percentage |
---|---|---|
SWAP | 778,800 | 50.0% |
STORE_SUBSCR_LIST_INT | 778,800 | 50.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_ADD_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_SMALL_INT | 2,518,180 | 100.0% |
BINARY_OP | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 1,822,260 | 72.4% |
STORE_SLICE | 695,880 | 27.6% |
CALL_BUILTIN_CLASS | 40 | 0.0% |
CALL | 20 | 0.0% |
Successors and predecessors for BINARY_OP_SUBTRACT_FLOAT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 40 | 66.7% |
BINARY_OP | 20 | 33.3% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 60 | 100.0% |
Successors and predecessors for BINARY_OP_SUBTRACT_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_SMALL_INT | 778,960 | 100.0% |
BINARY_OP | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
SWAP | 778,800 | 100.0% |
STORE_FAST | 120 | 0.0% |
STORE_SUBSCR_LIST_INT | 60 | 0.0% |
Successors and predecessors for BINARY_SUBSCR_LIST_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_SMALL_INT | 1,187,280 | 43.3% |
COPY | 778,800 | 28.4% |
LOAD_FAST_LOAD_FAST | 778,800 | 28.4% |
Successors | Count | Percentage |
---|---|---|
LOAD_SMALL_INT | 1,557,600 | 56.7% |
STORE_FAST | 1,187,280 | 43.3% |
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 |
---|---|---|
CALL | 120 | 33.3% |
CALL_BUILTIN_CLASS | 120 | 33.3% |
LOAD_FAST | 80 | 22.2% |
BINARY_OP_ADD_INT | 40 | 11.1% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST | 180 | 50.0% |
CALL_BUILTIN_CLASS | 120 | 33.3% |
CALL | 60 | 16.7% |
Successors and predecessors for CALL_BUILTIN_FAST
Predecessors | Count | Percentage |
---|---|---|
LOAD_SMALL_INT | 778,800 | 50.0% |
CALL_BUILTIN_FAST | 778,800 | 50.0% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 778,800 | 50.0% |
CALL_BUILTIN_FAST | 778,800 | 50.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 |
---|---|---|
BUILD_TUPLE | 40 | 66.7% |
CALL | 20 | 33.3% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 60 | 100.0% |
Successors and predecessors for CALL_NON_PY_GENERAL
Predecessors | Count | Percentage |
---|---|---|
PUSH_NULL | 200 | 55.6% |
CALL | 120 | 33.3% |
LOAD_FAST_LOAD_FAST | 40 | 11.1% |
Successors | Count | Percentage |
---|---|---|
POP_TOP | 120 | 33.3% |
RETURN_VALUE | 60 | 16.7% |
LOAD_FAST | 60 | 16.7% |
STORE_DEREF | 60 | 16.7% |
STORE_FAST | 60 | 16.7% |
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_CONST_IMMORTAL | 40 | 66.7% |
CALL | 20 | 33.3% |
Successors | Count | Percentage |
---|---|---|
MAKE_CELL | 60 | 100.0% |
Successors and predecessors for COMPARE_OP_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 1,065,720 | 57.8% |
LOAD_SMALL_INT | 778,900 | 42.2% |
COMPARE_OP | 20 | 0.0% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 1,844,640 | 100.0% |
Successors and predecessors for LOAD_ATTR_INSTANCE_VALUE
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 140 | 58.3% |
LOAD_ATTR | 60 | 25.0% |
LOAD_FAST_LOAD_FAST | 40 | 16.7% |
Successors | Count | Percentage |
---|---|---|
LOAD_ATTR_METHOD_NO_DICT | 80 | 33.3% |
TO_BOOL | 60 | 25.0% |
LOAD_ATTR | 40 | 16.7% |
CALL_PY_EXACT_ARGS | 40 | 16.7% |
CALL | 20 | 8.3% |
Successors and predecessors for LOAD_ATTR_METHOD_NO_DICT
Predecessors | Count | Percentage |
---|---|---|
LOAD_ATTR_INSTANCE_VALUE | 80 | 66.7% |
LOAD_ATTR | 40 | 33.3% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 60 | 50.0% |
CALL_METHOD_DESCRIPTOR_NOARGS | 40 | 33.3% |
CALL | 20 | 16.7% |
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 | 120 | 66.7% |
LOAD_ATTR | 60 | 33.3% |
Successors | Count | Percentage |
---|---|---|
PUSH_NULL | 120 | 66.7% |
STORE_FAST | 60 | 33.3% |
Successors and predecessors for LOAD_CONST_IMMORTAL
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 696,000 | 33.3% |
LOAD_CONST_IMMORTAL | 696,000 | 33.3% |
LOAD_FAST_LOAD_FAST | 695,880 | 33.3% |
POP_TOP | 180 | 0.0% |
STORE_FAST | 180 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_CONST_IMMORTAL | 696,000 | 33.3% |
BUILD_SLICE | 695,880 | 33.3% |
LOAD_FAST | 695,880 | 33.3% |
RETURN_VALUE | 180 | 0.0% |
STORE_FAST | 120 | 0.0% |
Successors and predecessors for LOAD_GLOBAL_BUILTIN
Predecessors | Count | Percentage |
---|---|---|
LOAD_GLOBAL | 120 | 33.3% |
LOAD_GLOBAL_BUILTIN | 120 | 33.3% |
STORE_FAST | 80 | 22.2% |
RESUME_CHECK | 40 | 11.1% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 120 | 33.3% |
LOAD_GLOBAL_BUILTIN | 120 | 33.3% |
LOAD_GLOBAL | 60 | 16.7% |
LOAD_SMALL_INT | 60 | 16.7% |
Successors and predecessors for LOAD_GLOBAL_MODULE
Predecessors | Count | Percentage |
---|---|---|
RESUME_CHECK | 120 | 50.0% |
LOAD_GLOBAL | 80 | 33.3% |
STORE_FAST | 40 | 16.7% |
Successors | Count | Percentage |
---|---|---|
LOAD_ATTR_MODULE | 120 | 50.0% |
LOAD_ATTR | 60 | 25.0% |
LOAD_FAST_LOAD_FAST | 60 | 25.0% |
Successors and predecessors for RESUME_CHECK
Predecessors | Count | Percentage |
---|---|---|
CALL_PY_EXACT_ARGS | 180 | 42.9% |
CACHE | 120 | 28.6% |
COPY_FREE_VARS | 60 | 14.3% |
MAKE_CELL | 60 | 14.3% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST | 180 | 42.9% |
LOAD_GLOBAL_MODULE | 120 | 28.6% |
LOAD_GLOBAL | 80 | 19.0% |
LOAD_GLOBAL_BUILTIN | 40 | 9.5% |
Successors and predecessors for STORE_SUBSCR_LIST_INT
Predecessors | Count | Percentage |
---|---|---|
SWAP | 778,800 | 100.0% |
BINARY_OP_SUBTRACT_INT | 60 | 0.0% |
Successors | Count | Percentage |
---|---|---|
LOAD_FAST_LOAD_FAST | 778,800 | 100.0% |
LOAD_FAST | 60 | 0.0% |
Successors and predecessors for TO_BOOL_BOOL
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 40 | 66.7% |
TO_BOOL | 20 | 33.3% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_TRUE | 60 | 100.0% |
Successors and predecessors for TO_BOOL_INT
Predecessors | Count | Percentage |
---|---|---|
LOAD_FAST | 737,100 | 100.0% |
Successors | Count | Percentage |
---|---|---|
POP_JUMP_IF_FALSE | 737,100 | 100.0% |
Successors and predecessors for UNPACK_SEQUENCE_TWO_TUPLE
Predecessors | Count | Percentage |
---|---|---|
CALL_METHOD_DESCRIPTOR_NOARGS | 40 | 66.7% |
UNPACK_SEQUENCE | 20 | 33.3% |
Successors | Count | Percentage |
---|---|---|
STORE_FAST_STORE_FAST | 60 | 100.0% |
Successors and predecessors for ENTER_EXECUTOR
Predecessors | Count | Percentage |
---|---|---|
ENTER_EXECUTOR | 1,719,900 | 46.7% |
STORE_FAST | 1,576,560 | 42.8% |
POP_JUMP_IF_FALSE | 389,520 | 10.6% |
Successors | Count | Percentage |
---|---|---|
ENTER_EXECUTOR | 1,719,900 | 46.7% |
LOAD_FAST | 737,160 | 20.0% |
LOAD_FAST_LOAD_FAST | 737,040 | 20.0% |
NOT_TAKEN | 491,880 | 13.3% |
Specialization stats by family
specialization stats for BINARY_OP family
Kind | Count | Ratio |
---|---|---|
hit
ⓘSpecialized instructions that complete. |
3,297,240 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 60 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for BINARY_SUBSCR family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
1,187,280 | 30.2% |
hit
ⓘSpecialized instructions that complete. |
2,744,940 | 69.8% |
Success | Count | Ratio |
---|---|---|
Success | 20 | 6.2% |
Failure | 300 | 93.8% |
Failure kind | Count | Ratio |
---|---|---|
list slice | 300 | 100.0% |
specialization stats for CALL family
Kind | Count | Ratio |
---|---|---|
hit
ⓘSpecialized instructions that complete. |
1,558,320 | 100.0% |
Success | Count | Ratio |
---|---|---|
Success | 380 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for COMPARE_OP family
Kind | Count | Ratio |
---|---|---|
hit
ⓘSpecialized instructions that complete. |
1,844,640 | 100.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 | 100.0% |
specialization stats for LOAD_ATTR family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
180 | 16.4% |
hit
ⓘSpecialized instructions that complete. |
660 | 60.0% |
Success | Count | Ratio |
---|---|---|
Success | 200 | 76.9% |
Failure | 60 | 23.1% |
Failure kind | Count | Ratio |
---|---|---|
method | 40 | 66.7% |
specialization stats for LOAD_GLOBAL family
Kind | Count | Ratio |
---|---|---|
hit
ⓘSpecialized instructions that complete. |
600 | 75.0% |
Success | Count | Ratio |
---|---|---|
Success | 200 | 100.0% |
Failure | 0 | 0.0% |
specialization stats for STORE_SLICE family
Kind | Count | Ratio |
---|---|---|
deferred
ⓘLists the number of "deferred" (i.e. not specialized) instructions executed. |
695,880 | 100.0% |
specialization stats for STORE_SUBSCR family
Kind | Count | Ratio |
---|---|---|
hit
ⓘSpecialized instructions that complete. |
778,860 | 100.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. |
737,160 | 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. |
60 | 75.0% |
Success | Count | Ratio |
---|---|---|
Success | 20 | 100.0% |
Failure | 0 | 0.0% |
specialization effectiveness
All entries are execution counts. Should add up to the total number of Tier 1 instructions executed.
Instructions | Count | Ratio |
---|---|---|
Basic
ⓘInstructions that are not and cannot be specialized, e.g. |
34,684,920 | 69.9% |
Not specialized
ⓘInstructions that could be specialized but aren't, e.g. |
1,884,760 | 3.8% |
Specialized hits
ⓘSpecialized instructions, e.g. |
13,051,560 | 26.3% |
Specialized misses
ⓘSpecialized instructions, e.g. |
0 | 0.0% |
Breakdown of deferred (not specialized) instruction counts by family
Name | Count | Ratio |
---|---|---|
BINARY_SUBSCR | 1,187,280 | 63.0% |
STORE_SLICE | 695,880 | 36.9% |
LOAD_ATTR | 180 | 0.0% |
TO_BOOL | 60 | 0.0% |
FOR_ITER | 60 | 0.0% |
BINARY_SLICE | 0 | 0.0% |
CACHE | 0 | 0.0% |
INTERPRETER_EXIT | 0 | 0.0% |
MAKE_FUNCTION | 0 | 0.0% |
NOP | 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 | 120 | 28.6% |
Calls to Python functions inlined | 300 | 71.4% |
Calls via PyEval_EvalFrame (total) | 120 | 28.6% |
Calls via PyEval_EvalFrame (vector) | 120 | 28.6% |
Calls via PyEval_EvalFrame (generator) | 0 | 0.0% |
Calls via PyEval_EvalFrame (legacy) | 0 | 0.0% |
Calls via PyEval_EvalFrame (function vectorcall) | 120 | 28.6% |
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 | 420 | 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 | 328,863,440 | 71.4% |
Frees to freelist | 328,863,580 | |
Allocations | 131,999,500 | 28.6% |
Allocations to 512 bytes | 131,999,140 | 28.6% |
Allocations to 4 kbytes | 360 | 0.0% |
Allocations over 4 kbytes | 0 | 0.0% |
Frees | 131,999,281 | |
Inline values | 0 | |
Interpreter mortal increfs | 743,183,280 | 18.1% |
Interpreter mortal decrefs | 1,072,045,000 | 19.0% |
Mortal increfs | 207,751,724 | 5.1% |
Mortal decrefs | 207,754,545 | 3.7% |
Interpreter immortal increfs | 1,067,418,600 | 26.0% |
Interpreter immortal decrefs | 2,110,851,900 | 37.3% |
Immortal increfs | 2,090,961,372 | 50.9% |
Immortal decrefs | 2,261,299,831 | 40.0% |
Materialize dict (on request) | 0 | |
Materialize dict (new key) | 0 | |
Materialize dict (too big) | 0 | |
Materialize dict (str subclass) | 0 | |
Method cache hits | 352 | |
Method cache misses | 28 | |
Method cache collisions | 15 | |
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 | 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. |
540 | |
Traces created
ⓘThe number of traces that were successfully created. |
540 | 100.0% |
Trace stack overflow
ⓘA trace is truncated because it would require more than 5 stack frames. |
0 | 0.0% |
Trace stack underflow
ⓘA potential trace is abandoned because it pops more frames than it pushes. |
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 abandoned because it it too short. |
0 | 0.0% |
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 |
136,020,960 | |
Uops executed
ⓘThe total number of uops (micro-operations) that were executed |
6,804,098,460 | 5,002.2% |
Count | Ratio | |
---|---|---|
Optimizer attempts
ⓘThe number of times the trace optimizer (_Py_uop_analyze_and_optimize) was run. |
540 | |
Optimizer successes
ⓘThe number of traces that were successfully optimized. |
540 | 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 | 180 | 33.3% |
<= 32 | 0 | 0.0% |
<= 64 | 60 | 11.1% |
<= 128 | 300 | 55.6% |
optimized trace length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
<= 2 | 0 | 0.0% |
<= 4 | 0 | 0.0% |
<= 8 | 180 | 33.3% |
<= 16 | 0 | 0.0% |
<= 32 | 0 | 0.0% |
<= 64 | 360 | 66.7% |
trace run length histogram
Range | Count | Ratio |
---|---|---|
<= 1 | 0 | 0.0% |
uop execution stats
Name | Count | Self | Cumulative | Miss ratio |
---|---|---|---|---|
_SET_IP | 650,732,220 | 9.6% | 9.6% | |
_CHECK_VALIDITY | 650,732,220 | 9.6% | 19.1% | |
_LOAD_FAST | 483,493,680 | 7.1% | 26.2% | |
_LOAD_FAST_6 | 326,281,860 | 4.8% | 31.0% | |
_LOAD_SMALL_INT_1 | 326,192,820 | 4.8% | 35.8% | |
_LOAD_CONST_INLINE_BORROW | 309,536,460 | 4.5% | 40.4% | |
_LOAD_SMALL_INT_0 | 253,481,100 | 3.7% | 44.1% | |
_GUARD_NOS_INT | 249,035,400 | 3.7% | 47.8% | |
_LOAD_FAST_4 | 245,373,000 | 3.6% | 51.4% | |
_STORE_FAST | 239,848,440 | 3.5% | 54.9% | |
_BINARY_SUBSCR_LIST_INT | 234,316,500 | 3.4% | 58.3% | |
_CHECK_PERIODIC | 229,945,620 | 3.4% | 61.7% | |
_MAKE_WARM | 222,454,380 | 3.3% | 65.0% | |
_BINARY_OP_ADD_INT | 220,870,260 | 3.2% | 68.2% | |
_GUARD_IS_TRUE_POP | 215,413,140 | 3.2% | 71.4% | 16.2% |
_COMPARE_OP_INT | 168,753,960 | 2.5% | 73.9% | |
_EXIT_TRACE | 136,020,960 | 2.0% | 75.9% | |
_START_EXECUTOR | 136,020,960 | 2.0% | 77.9% | |
_TO_BOOL_INT | 120,374,400 | 1.8% | 79.6% | |
_BINARY_SUBSCR | 119,924,220 | 1.8% | 81.4% | |
_BUILD_SLICE | 103,178,820 | 1.5% | 82.9% | |
_STORE_SLICE | 103,178,820 | 1.5% | 84.4% | |
_LOAD_FAST_1 | 88,904,820 | 1.3% | 85.7% | |
_JUMP_TO_TOP | 86,433,420 | 1.3% | 87.0% | |
_GUARD_IS_FALSE_POP | 73,715,220 | 1.1% | 88.1% | 44.6% |
_PUSH_NULL | 73,265,880 | 1.1% | 89.2% | |
_COPY | 73,265,880 | 1.1% | 90.3% | |
_SWAP | 73,265,880 | 1.1% | 91.3% | |
_CALL_BUILTIN_FAST | 73,265,880 | 1.1% | 92.4% | |
_GUARD_BOTH_INT | 70,819,680 | 1.0% | 93.4% | |
_BINARY_OP_SUBTRACT_INT | 67,910,820 | 1.0% | 94.4% | |
_LOAD_FAST_5 | 57,871,800 | 0.9% | 95.3% | |
_STORE_SUBSCR_LIST_INT | 52,271,880 | 0.8% | 96.1% | |
_LOAD_FAST_3 | 38,707,200 | 0.6% | 96.6% | |
_LOAD_FAST_0 | 36,633,000 | 0.5% | 97.2% | |
_POP_TOP | 36,632,940 | 0.5% | 97.7% | |
_CHECK_VALIDITY_AND_SET_IP | 36,632,940 | 0.5% | 98.2% | |
_LOAD_FAST_7 | 36,632,940 | 0.5% | 98.8% | |
_STORE_FAST_4 | 30,151,560 | 0.4% | 99.2% | |
_LOAD_FAST_2 | 16,949,880 | 0.2% | 99.5% | |
_LOAD_CONST_INLINE | 16,745,400 | 0.2% | 99.7% | |
_STORE_FAST_6 | 16,745,400 | 0.2% | 100.0% | |
_GUARD_TOS_INT | 2,116,800 | 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 |
---|---|---|---|
_BINARY_SUBSCR_LIST_INT _CHECK_VALIDITY | 234,316,500 | 3.4% | 3.4% |
_SET_IP _BINARY_SUBSCR_LIST_INT | 234,316,500 | 3.4% | 6.9% |
_CHECK_VALIDITY _LOAD_FAST | 206,807,820 | 3.0% | 9.9% |
_LOAD_FAST _LOAD_SMALL_INT_1 | 206,357,640 | 3.0% | 13.0% |
_CHECK_PERIODIC _CHECK_VALIDITY | 193,312,680 | 2.8% | 15.8% |
_LOAD_SMALL_INT_1 _GUARD_NOS_INT | 190,629,660 | 2.8% | 18.6% |
_LOAD_SMALL_INT_0 _SET_IP | 178,329,960 | 2.6% | 21.2% |
_SET_IP _CHECK_PERIODIC | 156,679,740 | 2.3% | 23.5% |
_MAKE_WARM _SET_IP | 156,679,740 | 2.3% | 25.8% |
_START_EXECUTOR _MAKE_WARM | 136,020,960 | 2.0% | 27.8% |
_TO_BOOL_INT _GUARD_IS_TRUE_POP | 120,374,400 | 1.8% | 29.6% |
_LOAD_FAST _TO_BOOL_INT | 120,374,400 | 1.8% | 31.4% |
_SET_IP _BINARY_SUBSCR | 119,924,220 | 1.8% | 33.1% |
_BINARY_SUBSCR _CHECK_VALIDITY | 119,924,220 | 1.8% | 34.9% |
_CHECK_VALIDITY _STORE_FAST | 119,924,220 | 1.8% | 36.7% |
_LOAD_FAST_6 _LOAD_SMALL_INT_0 | 119,924,220 | 1.8% | 38.4% |
_LOAD_SMALL_INT_1 _BINARY_OP_ADD_INT | 119,924,220 | 1.8% | 40.2% |
_STORE_FAST _LOAD_FAST_6 | 119,924,220 | 1.8% | 41.9% |
_BUILD_SLICE _SET_IP | 103,178,820 | 1.5% | 43.5% |
_SET_IP _STORE_SLICE | 103,178,820 | 1.5% | 45.0% |
_BINARY_OP_ADD_INT _SET_IP | 103,178,820 | 1.5% | 46.5% |
_BINARY_OP_ADD_INT _STORE_FAST | 103,178,820 | 1.5% | 48.0% |
_CHECK_VALIDITY _LOAD_FAST_6 | 103,178,820 | 1.5% | 49.5% |
_GUARD_IS_TRUE_POP _LOAD_FAST_6 | 103,178,820 | 1.5% | 51.0% |
_LOAD_CONST_INLINE_BORROW _BUILD_SLICE | 103,178,820 | 1.5% | 52.6% |
_LOAD_CONST_INLINE_BORROW _LOAD_CONST_INLINE_BORROW | 103,178,820 | 1.5% | 54.1% |
_LOAD_CONST_INLINE_BORROW _LOAD_FAST | 103,178,820 | 1.5% | 55.6% |
_LOAD_FAST _LOAD_CONST_INLINE_BORROW | 103,178,820 | 1.5% | 57.1% |
_LOAD_FAST_6 _LOAD_CONST_INLINE_BORROW | 103,178,820 | 1.5% | 58.6% |
_LOAD_FAST_6 _LOAD_FAST | 103,178,820 | 1.5% | 60.1% |
_STORE_SLICE _CHECK_VALIDITY | 103,178,820 | 1.5% | 61.7% |
_GUARD_NOS_INT _BINARY_OP_ADD_INT | 100,946,040 | 1.5% | 63.1% |
_GUARD_NOS_INT _COMPARE_OP_INT | 95,817,480 | 1.4% | 64.5% |
_COMPARE_OP_INT _GUARD_IS_TRUE_POP | 95,038,740 | 1.4% | 65.9% |
_LOAD_FAST_1 _LOAD_FAST_4 | 88,904,820 | 1.3% | 67.3% |
_JUMP_TO_TOP _MAKE_WARM | 86,433,420 | 1.3% | 68.5% |
_STORE_FAST _JUMP_TO_TOP | 86,433,420 | 1.3% | 69.8% |
_LOAD_FAST_4 _LOAD_SMALL_INT_1 | 83,202,240 | 1.2% | 71.0% |
_COMPARE_OP_INT _GUARD_IS_FALSE_POP | 73,715,220 | 1.1% | 72.1% |
_CALL_BUILTIN_FAST _CHECK_PERIODIC | 73,265,880 | 1.1% | 73.2% |
_GUARD_BOTH_INT _COMPARE_OP_INT | 70,819,680 | 1.0% | 74.2% |
_CHECK_VALIDITY _LOAD_SMALL_INT_0 | 58,405,740 | 0.9% | 75.1% |
_LOAD_SMALL_INT_0 _GUARD_NOS_INT | 58,405,740 | 0.9% | 75.9% |
_GUARD_IS_TRUE_POP _EXIT_TRACE | 56,247,780 | 0.8% | 76.8% |
_CHECK_VALIDITY _LOAD_FAST_4 | 53,050,740 | 0.8% | 77.5% |
_GUARD_NOS_INT _BINARY_OP_SUBTRACT_INT | 52,271,880 | 0.8% | 78.3% |
_LOAD_FAST_4 _LOAD_FAST_0 | 36,633,000 | 0.5% | 78.8% |
_POP_TOP _LOAD_FAST_1 | 36,632,940 | 0.5% | 79.4% |
_PUSH_NULL _LOAD_FAST_4 | 36,632,940 | 0.5% | 79.9% |
_PUSH_NULL _LOAD_SMALL_INT_0 | 36,632,940 | 0.5% | 80.5% |
_COPY _COPY | 36,632,940 | 0.5% | 81.0% |
_COPY _SET_IP | 36,632,940 | 0.5% | 81.5% |
_SWAP _SWAP | 36,632,940 | 0.5% | 82.1% |
_SWAP _STORE_SUBSCR_LIST_INT | 36,632,940 | 0.5% | 82.6% |
_STORE_SUBSCR_LIST_INT _LOAD_FAST_1 | 36,632,940 | 0.5% | 83.2% |
_SET_IP _CALL_BUILTIN_FAST | 36,632,940 | 0.5% | 83.7% |
_BINARY_OP_SUBTRACT_INT _SWAP | 36,632,940 | 0.5% | 84.2% |
_CHECK_PERIODIC _CHECK_VALIDITY_AND_SET_IP | 36,632,940 | 0.5% | 84.8% |
_CHECK_VALIDITY _POP_TOP | 36,632,940 | 0.5% | 85.3% |
_CHECK_VALIDITY _LOAD_SMALL_INT_1 | 36,632,940 | 0.5% | 85.8% |
_CHECK_VALIDITY_AND_SET_IP _CALL_BUILTIN_FAST | 36,632,940 | 0.5% | 86.4% |
_GUARD_IS_TRUE_POP _LOAD_FAST_7 | 36,632,940 | 0.5% | 86.9% |
_LOAD_FAST _PUSH_NULL | 36,632,940 | 0.5% | 87.5% |
_LOAD_FAST_4 _COPY | 36,632,940 | 0.5% | 88.0% |
_LOAD_FAST_4 _SET_IP | 36,632,940 | 0.5% | 88.5% |
_LOAD_FAST_4 _LOAD_FAST | 36,632,940 | 0.5% | 89.1% |
_LOAD_FAST_7 _PUSH_NULL | 36,632,940 | 0.5% | 89.6% |
_LOAD_FAST_0 _GUARD_BOTH_INT | 34,516,200 | 0.5% | 90.1% |
_GUARD_IS_FALSE_POP _EXIT_TRACE | 32,876,220 | 0.5% | 90.6% |
_MAKE_WARM _LOAD_FAST_4 | 32,079,360 | 0.5% | 91.1% |
_STORE_FAST_4 _EXIT_TRACE | 30,151,560 | 0.4% | 91.5% |
_GUARD_IS_FALSE_POP _LOAD_FAST_5 | 21,772,800 | 0.3% | 91.8% |
_LOAD_FAST_5 _LOAD_SMALL_INT_0 | 21,772,800 | 0.3% | 92.2% |
_CHECK_VALIDITY _LOAD_FAST_3 | 19,353,600 | 0.3% | 92.4% |
_GUARD_IS_TRUE_POP _LOAD_FAST_5 | 19,353,600 | 0.3% | 92.7% |
_LOAD_FAST_3 _SET_IP | 19,353,600 | 0.3% | 93.0% |
_LOAD_FAST_3 _GUARD_BOTH_INT | 19,353,600 | 0.3% | 93.3% |
_LOAD_FAST_5 _LOAD_FAST_3 | 19,353,600 | 0.3% | 93.6% |
_GUARD_IS_FALSE_POP _LOAD_FAST_4 | 19,066,200 | 0.3% | 93.9% |
_LOAD_FAST _LOAD_FAST_2 | 16,949,880 | 0.2% | 94.1% |
_LOAD_FAST_2 _GUARD_BOTH_INT | 16,949,880 | 0.2% | 94.4% |
_MAKE_WARM _LOAD_FAST | 16,949,880 | 0.2% | 94.6% |
_CHECK_VALIDITY _STORE_FAST_6 | 16,745,400 | 0.2% | 94.9% |
_LOAD_CONST_INLINE _SET_IP | 16,745,400 | 0.2% | 95.1% |
_LOAD_FAST_5 _LOAD_CONST_INLINE | 16,745,400 | 0.2% | 95.3% |
_LOAD_SMALL_INT_0 _STORE_FAST | 16,745,400 | 0.2% | 95.6% |
_MAKE_WARM _LOAD_FAST_5 | 16,745,400 | 0.2% | 95.8% |
_STORE_FAST _EXIT_TRACE | 16,745,400 | 0.2% | 96.1% |
_STORE_FAST _LOAD_FAST | 16,745,400 | 0.2% | 96.3% |
_STORE_FAST_6 _LOAD_SMALL_INT_0 | 16,745,400 | 0.2% | 96.6% |
_STORE_SUBSCR_LIST_INT _LOAD_FAST_4 | 15,638,940 | 0.2% | 96.8% |
_BINARY_OP_SUBTRACT_INT _STORE_SUBSCR_LIST_INT | 15,638,940 | 0.2% | 97.0% |
_BINARY_OP_SUBTRACT_INT _STORE_FAST_4 | 15,638,940 | 0.2% | 97.3% |
_LOAD_FAST_4 _LOAD_FAST_1 | 15,638,940 | 0.2% | 97.5% |
_LOAD_SMALL_INT_1 _BINARY_OP_SUBTRACT_INT | 15,638,940 | 0.2% | 97.7% |
_BINARY_OP_ADD_INT _STORE_FAST_4 | 14,512,620 | 0.2% | 97.9% |
_GUARD_TOS_INT _COMPARE_OP_INT | 2,116,800 | 0.0% | 98.0% |
_LOAD_FAST_0 _GUARD_TOS_INT | 2,116,800 | 0.0% | 98.0% |
unsupported opcodes
Optimization stopped after encountering this opcode
Counts of rare/unlikely events
Event | Count |
---|---|
set class
ⓘSetting an object's class, |
0 |
set bases
ⓘSetting the bases of a class, |
0 |
set eval frame func
ⓘSetting the PEP 523 frame eval function |
0 |
builtin dict
ⓘModifying the builtins, |
0 |
func modification
ⓘModifying a function, e.g. |
0 |
watched dict modification
ⓘA watched dict has been modified |
0 |
watched globals modification
ⓘA watched |
0 |
Meta statistics
Count | |
---|---|
Number of data files | 20 |
Stats gathered on: 2025-01-12