Skip to content

Latest commit

 

History

History
3167 lines (2934 loc) · 63.9 KB

bm-20250121-azure-x86_64-brandtbucher-remove_optimizer_api-3.14.0a4+-085e172-pystats-float-vs-base.md

File metadata and controls

3167 lines (2934 loc) · 63.9 KB

Execution counts

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 Base Count Head Count Change
RETURN_VALUE 24,999,960 24,999,960 0.0%
LOAD_FAST 16,937,700 16,937,700 0.0%
LOAD_FAST_LOAD_FAST 14,299,560 14,299,560 0.0%
EXIT_INIT_CHECK 12,000,000 12,000,000 0.0%
STORE_SUBSCR_LIST_INT 12,000,000 12,000,000 0.0%
ENTER_EXECUTOR 11,612,340 11,612,340 0.0%
LOAD_ATTR_SLOT 7,438,080 7,438,080 0.0%
STORE_ATTR_SLOT 5,455,860 5,455,860 0.0%
STORE_FAST 4,692,480 4,692,480 0.0%
PUSH_NULL 2,551,440 2,551,440 0.0%
LOAD_GLOBAL_MODULE 2,550,900 2,550,900 0.0%
COPY 2,299,260 2,299,260 0.0%
BINARY_OP_MULTIPLY_FLOAT 2,299,260 2,299,260 0.0%
CALL_BUILTIN_O 2,140,920 2,140,920 0.0%
RESUME_CHECK 1,808,340 1,808,340 0.0%
LOAD_SMALL_INT 1,649,640 1,649,640 0.0%
BINARY_OP_EXTEND 1,649,400 1,649,400 0.0%
POP_JUMP_IF_FALSE 1,491,000 1,491,000 0.0%
COMPARE_OP_FLOAT 1,490,880 1,490,880 0.0%
BINARY_OP 1,475,080 1,475,080 0.0%
SWAP 1,474,560 1,474,560 0.0%
JUMP_BACKWARD 1,392,820
LOAD_CONST_IMMORTAL 1,316,940 1,316,940 0.0%
JUMP_FORWARD 989,820 989,820 0.0%
CALL_PY_EXACT_ARGS 983,400 983,400 0.0%
LOAD_METHOD_NO_DICT 983,160 983,160 0.0%
BINARY_OP_ADD_FLOAT 983,040 983,040 0.0%
FOR_ITER_LIST 983,040 983,040 0.0%
POP_TOP 491,940 491,940 0.0%
FOR_ITER_RANGE 409,800 409,800 0.0%
CALL_ALLOC_AND_ENTER_INIT 409,620 409,620 0.0%
POP_ITER 480 480 0.0%
GET_ITER 420 420 0.0%
CALL_NON_PY_GENERAL 420 420 0.0%
CALL 260 260 0.0%
LOAD_ATTR_INSTANCE_VALUE 240 240 0.0%
LOAD_CONST_MORTAL 240 240 0.0%
CALL_BUILTIN_CLASS 180 180 0.0%
LOAD_ATTR_MODULE 180 180 0.0%
LOAD_GLOBAL_BUILTIN 180 180 0.0%
BINARY_SUBSCR 160 160 0.0%
LOAD_METHOD 160 160 0.0%
INTERPRETER_EXIT 120 120 0.0%
BUILD_LIST 120 120 0.0%
BUILD_TUPLE 120 120 0.0%
LOAD_ATTR 120 120 0.0%
BINARY_SUBSCR_LIST_INT 120 120 0.0%
LOAD_METHOD_WITH_VALUES 120 120 0.0%
TO_BOOL 100 100 0.0%
LOAD_GLOBAL 100 100 0.0%
CALL_FUNCTION_EX 60 60 0.0%
MAKE_FUNCTION 60 60 0.0%
NOP 60 60 0.0%
COPY_FREE_VARS 60 60 0.0%
FOR_ITER 60 60 0.0%
IS_OP 60 60 0.0%
LOAD_DEREF 60 60 0.0%
MAKE_CELL 60 60 0.0%
POP_JUMP_IF_NOT_NONE 60 60 0.0%
POP_JUMP_IF_TRUE 60 60 0.0%
SET_FUNCTION_ATTRIBUTE 60 60 0.0%
STORE_DEREF 60 60 0.0%
STORE_FAST_STORE_FAST 60 60 0.0%
BINARY_OP_SUBTRACT_FLOAT 60 60 0.0%
BINARY_SUBSCR_TUPLE_INT 60 60 0.0%
CALL_METHOD_DESCRIPTOR_NOARGS 60 60 0.0%
CALL_METHOD_DESCRIPTOR_O 60 60 0.0%
CALL_PY_GENERAL 60 60 0.0%
COMPARE_OP_INT 60 60 0.0%
TO_BOOL_BOOL 60 60 0.0%
UNPACK_SEQUENCE_TWO_TUPLE 60 60 0.0%
COMPARE_OP 20 20 0.0%
UNPACK_SEQUENCE 20 20 0.0%
JUMP_BACKWARD_JIT 1,392,820

Pair counts

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.

Not included in comparative output.

Predecessor/Successor Pairs

Top 5 predecessors and successors of each Tier 1 opcode.

This does not include the unspecialized instructions that occur after a specialized instruction deoptimizes.

Not included in comparative output.

Specialization stats

Specialization stats by family

BINARY_OP

specialization stats for BINARY_OP family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

1,474,680 1.5% 1,474,680 1.5% 0.0%
hit

Specialized instructions that complete.

96,000,060 98.5% 96,000,060 98.5% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 20 5.0% 20 5.0% 0.0%
Failure 380 95.0% 380 95.0% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
true divide float 360 94.7% 360 94.7% 0.0%
multiply different types 20 5.3% 20 5.3% 0.0%

BINARY_SUBSCR

specialization stats for BINARY_SUBSCR family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

120 35.3% 120 35.3% 0.0%
hit

Specialized instructions that complete.

180 52.9% 180 52.9% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 20 50.0% 20 50.0% 0.0%
Failure 20 50.0% 20 50.0% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
list slice 20 100.0% 20 100.0% 0.0%

CALL

specialization stats for CALL family
Kind Base Count Base Ratio Head Count Head Ratio Change
hit

Specialized instructions that complete.

72,000,540 100.0% 72,000,540 100.0% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 260 100.0% 260 100.0% 0.0%
Failure 0 0.0% 0 0.0%

COMPARE_OP

specialization stats for COMPARE_OP family
Kind Base Count Base Ratio Head Count Head Ratio Change
hit

Specialized instructions that complete.

35,999,700 100.0% 35,999,700 100.0% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 20 100.0% 20 100.0% 0.0%
Failure 0 0.0% 0 0.0%

FOR_ITER

specialization stats for FOR_ITER family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

60 0.0% 60 0.0% 0.0%
hit

Specialized instructions that complete.

1,392,840 100.0% 1,392,840 100.0% 0.0%

LOAD_ATTR

specialization stats for LOAD_ATTR family
Kind Base Count Base Ratio Head Count Head Ratio Change
hit

Specialized instructions that complete.

203,999,460 100.0% 203,999,460 100.0% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 120 100.0% 120 100.0% 0.0%
Failure 0 0.0% 0 0.0%

LOAD_GLOBAL

specialization stats for LOAD_GLOBAL family
Kind Base Count Base Ratio Head Count Head Ratio Change
hit

Specialized instructions that complete.

2,551,080 100.0% 2,551,080 100.0% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 100 100.0% 100 100.0% 0.0%
Failure 0 0.0% 0 0.0%

LOAD_METHOD

specialization stats for LOAD_METHOD family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

60 37.5% 60 37.5% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 80 80.0% 80 80.0% 0.0%
Failure 20 20.0% 20 20.0% 0.0%

STORE_ATTR

specialization stats for STORE_ATTR family
Kind Base Count Base Ratio Head Count Head Ratio Change
hit

Specialized instructions that complete.

107,999,640 100.0% 107,999,640 100.0% 0.0%

STORE_SUBSCR

specialization stats for STORE_SUBSCR family
Kind Base Count Base Ratio Head Count Head Ratio Change
hit

Specialized instructions that complete.

12,000,000 100.0% 12,000,000 100.0% 0.0%

TO_BOOL

specialization stats for TO_BOOL family
Kind Base Count Base Ratio Head Count Head Ratio Change
deferred

Lists the number of "deferred" (i.e. not specialized) instructions executed.

60 37.5% 60 37.5% 0.0%
hit

Specialized instructions that complete.

60 37.5% 60 37.5% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 20 50.0% 20 50.0% 0.0%
Failure 20 50.0% 20 50.0% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
sequence 20 100.0% 20 100.0% 0.0%

UNPACK_SEQUENCE

specialization stats for UNPACK_SEQUENCE family
Kind Base Count Base Ratio Head Count Head Ratio Change
hit

Specialized instructions that complete.

60 75.0% 60 75.0% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 20 100.0% 20 100.0% 0.0%
Failure 0 0.0% 0 0.0%

Specialization effectiveness

specialization effectiveness

All entries are execution counts. Should add up to the total number of Tier 1 instructions executed.

Instructions Base Count Base Ratio Head Count Head Ratio Change
Specialized hits

Specialized instructions, e.g. LOAD_ATTR_MODULE that complete.

42,898,800 30.4% 44,291,620 31.4% 3.2%
Basic

Instructions that are not and cannot be specialized, e.g. LOAD_FAST.

96,884,500 68.6% 95,491,680 67.6% -1.4%
Not specialized

Instructions that could be specialized but aren't, e.g. LOAD_ATTR, BINARY_SLICE.

1,476,080 1.0% 1,476,080 1.0% 0.0%
Specialized misses

Specialized instructions, e.g. LOAD_ATTR_MODULE that deopt.

6,000 0.0% 6,000 0.0% 0.0%

Deferred by instruction

Breakdown of deferred (not specialized) instruction counts by family
Name Base Count Base Ratio Head Count Head Ratio Change
BINARY_OP 1,474,680 100.0% 1,474,680 100.0% 0.0%
BINARY_SUBSCR 120 0.0% 120 0.0% 0.0%
TO_BOOL 60 0.0% 60 0.0% 0.0%
FOR_ITER 60 0.0% 60 0.0% 0.0%
LOAD_METHOD 60 0.0% 60 0.0% 0.0%
BINARY_SLICE 0 0.0% 0 0.0%
STORE_SLICE 0 0.0% 0 0.0%
CACHE 0 0.0% 0 0.0%
CALL_FUNCTION_EX 0 0.0% 0 0.0%
EXIT_INIT_CHECK 0 0.0% 0 0.0%

Misses by instruction

Breakdown of misses (specialized deopts) instruction counts by family
Name Base Count Base Ratio Head Count Head Ratio Change
RESUME 6,000 50.0% 6,000 50.0% 0.0%
RESUME_CHECK 6,000 50.0% 6,000 50.0% 0.0%
CACHE 0 0.0% 0 0.0%
CALL_FUNCTION_EX 0 0.0% 0 0.0%
EXIT_INIT_CHECK 0 0.0% 0 0.0%
GET_ITER 0 0.0% 0 0.0%
INTERPRETER_EXIT 0 0.0% 0 0.0%
MAKE_FUNCTION 0 0.0% 0 0.0%
NOP 0 0.0% 0 0.0%
POP_ITER 0 0.0% 0 0.0%

Call stats

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.

Base Count Base Ratio Head Count Head Ratio Change
Calls to PyEval_EvalDefault 180 0.0% 180 0.0% 0.0%
Calls to Python functions inlined 36,000,300 100.0% 36,000,300 100.0% 0.0%
Calls via PyEval_EvalFrame (total) 180 0.0% 180 0.0% 0.0%
Calls via PyEval_EvalFrame (vector) 180 0.0% 180 0.0% 0.0%
Calls via PyEval_EvalFrame (generator) 0 0.0% 0 0.0%
Calls via PyEval_EvalFrame (legacy) 0 0.0% 0 0.0%
Calls via PyEval_EvalFrame (function vectorcall) 180 0.0% 180 0.0% 0.0%
Calls via PyEval_EvalFrame (build class) 0 0.0% 0 0.0%
Calls via PyEval_EvalFrame (slot) 0 0.0% 0 0.0%
Calls via PyEval_EvalFrame (function ex) 0 0.0% 0 0.0%
Calls via PyEval_EvalFrame (api) 0 0.0% 0 0.0%
Calls via PyEval_EvalFrame (method) 0 0.0% 0 0.0%
Frame objects created 0 0.0% 0 0.0%
Frames pushed 48,000,480 133.3% 48,000,480 133.3% 0.0%

Object stats

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.

Base Count Base Ratio Head Count Head Ratio Change
Method cache collisions 24 9 -62.5%
Method cache misses 26 22 -15.4%
Method cache hits 194 198 2.1%
Frees 48,002,186 48,002,181 -0.0%
Immortal increfs 47,608,266 4.8% 47,608,262 4.8% -0.0%
Immortal decrefs 45,483,460 3.8% 45,483,461 3.8% 0.0%
Mortal decrefs 868,737,292 71.8% 868,737,283 71.8% -0.0%
Mortal increfs 849,182,026 86.4% 849,182,022 86.4% -0.0%
Allocations from freelist 143,981,940 75.0% 143,981,940 75.0% 0.0%
Frees to freelist 143,981,900 143,981,900 0.0%
Allocations 48,001,860 25.0% 48,001,860 25.0% 0.0%
Allocations to 512 bytes 48,001,180 25.0% 48,001,180 25.0% 0.0%
Allocations to 4 kbytes 320 0.0% 320 0.0% 0.0%
Allocations over 4 kbytes 360 0.0% 360 0.0% 0.0%
Inline values 0 0
Interpreter mortal increfs 85,093,820 8.7% 85,093,820 8.7% 0.0%
Interpreter mortal decrefs 257,522,040 21.3% 257,522,040 21.3% 0.0%
Interpreter immortal increfs 518,600 0.1% 518,600 0.1% 0.0%
Interpreter immortal decrefs 38,281,020 3.2% 38,281,020 3.2% 0.0%
Materialize dict (on request) 0 0
Materialize dict (new key) 0 0
Materialize dict (too big) 0 0
Materialize dict (str subclass) 0 0
Method cache dunder hits 0 0
Method cache dunder misses 0 0

GC stats

GC collections and effectiveness

Collected/visits gives some measure of efficiency.

Generation Base Collections Base Objects collected Base Object visits Base Reachable from roots Base Not reachable from roots Head Collections Head Objects collected Head Object visits Head Reachable from roots Head Not reachable from roots
0 0 0 0 0 0 0 0 0 0 0
1 5,880 160 138,814,072 5,485,740 11,437,840 5,880 160 138,814,948 5,485,500 11,437,840
2 0 0 0 0 0 0 0 0 0 0

Optimization (Tier 2) stats

statistics about the Tier 2 optimizer
Base Count Base Ratio Head Count Head Ratio Change
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.

3,120 3,120 0.0%
Traces created

The number of traces that were successfully created.

440 14.1% 440 14.1% 0.0%
Trace stack overflow

A trace is truncated because it would require more than 5 stack frames.

0 0.0% 0 0.0%
Trace stack underflow

A potential trace is abandoned because it pops more frames than it pushes.

2,780 89.1% 2,780 89.1% 0.0%
Trace too long

A trace is truncated because it is longer than the instruction buffer.

0 0.0% 0 0.0%
Trace too short

A potential trace is abandoned because it it too short.

2,680 85.9% 2,680 85.9% 0.0%
Inner loop found

A trace is truncated because it has an inner loop

0 0.0% 0 0.0%
Recursive call

A trace is truncated because it has a recursive call.

0 0.0% 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% 0 0.0%
Executors invalidated

The number of executors that were invalidated due to watched dictionary changes.

0 0.0% 0 0.0%
Traces executed

The number of traces that were executed

22,787,960 22,787,960 0.0%
Uops executed

The total number of uops (micro-operations) that were executed

2,666,113,040 11,699.7% 2,666,113,040 11,699.7% 0.0%
Base Count Base Ratio Head Count Head Ratio Change
Optimizer attempts

The number of times the trace optimizer (_Py_uop_analyze_and_optimize) was run.

440 440 0.0%
Optimizer successes

The number of traces that were successfully optimized.

440 100.0% 440 100.0% 0.0%
Optimizer no memory

The number of optimizations that failed due to no memory.

0 0.0% 0 0.0%
Remove globals builtins changed

The builtins changed during optimization

0 0.0% 0 0.0%
Remove globals incorrect keys

The keys in the globals dictionary aren't what was expected

0 0.0% 0 0.0%

Trace length histogram

trace length histogram
Range Base Count Base Ratio Head Count Head Ratio Change
<= 1 0 0.0% 0 0.0%
<= 2 0 0.0% 0 0.0%
<= 4 0 0.0% 0 0.0%
<= 8 0 0.0% 0 0.0%
<= 16 0 0.0% 0 0.0%
<= 32 100 22.7% 100 22.7% 0.0%
<= 64 100 22.7% 100 22.7% 0.0%
<= 128 120 27.3% 120 27.3% 0.0%
<= 256 120 27.3% 120 27.3% 0.0%

Optimized trace length histogram

optimized trace length histogram
Range Base Count Base Ratio Head Count Head Ratio Change
<= 1 0 0.0% 0 0.0%
<= 2 0 0.0% 0 0.0%
<= 4 0 0.0% 0 0.0%
<= 8 0 0.0% 0 0.0%
<= 16 0 0.0% 0 0.0%
<= 32 100 22.7% 100 22.7% 0.0%
<= 64 100 22.7% 100 22.7% 0.0%
<= 128 240 54.5% 240 54.5% 0.0%

Trace run length histogram

trace run length histogram
Range Base Count Base Ratio Head Count Head Ratio Change
<= 1 0 0.0% 0 0.0%

Uop execution stats

uop execution stats
Name Base Count Head Count Change
_SET_IP 343,118,400 343,118,400 0.0%
_CHECK_VALIDITY 297,019,140 297,019,140 0.0%
_LOAD_FAST_0 217,562,460 217,562,460 0.0%
_LOAD_ATTR_SLOT 172,560,840 172,560,840 0.0%
_STORE_ATTR_SLOT 102,543,780 102,543,780 0.0%
_LOAD_FAST_1 91,384,680 91,384,680 0.0%
_GUARD_BOTH_FLOAT 80,209,500 80,209,500 0.0%
_CHECK_PERIODIC 68,466,660 68,466,660 0.0%
_LOAD_FAST_2 68,466,300 68,466,300 0.0%
_MAKE_WARM 45,788,480 45,788,480 0.0%
_STORE_FAST_2 45,782,520 45,782,520 0.0%
_COPY 45,700,740 45,700,740 0.0%
_BINARY_OP_MULTIPLY_FLOAT 45,700,740 45,700,740 0.0%
_GUARD_TYPE_VERSION 45,700,500 45,700,500 0.0%
_PUSH_NULL 45,449,460 45,449,460 0.0%
_LOAD_CONST_INLINE 45,449,460 45,449,460 0.0%
_PUSH_FRAME 34,607,220 34,607,220 0.0%
_SWAP 34,525,440 34,525,440 0.0%
_BINARY_OP 34,525,440 34,525,440 0.0%
_LOAD_FAST_3 34,525,440 34,525,440 0.0%
_LOAD_FAST_4 34,525,440 34,525,440 0.0%
_GUARD_IS_TRUE_POP 34,508,760 34,508,760 0.0%
_COMPARE_OP_FLOAT 34,508,760 34,508,760 0.0%
_CHECK_FUNCTION 34,274,160 34,274,160 0.0%
_CALL_BUILTIN_O 33,859,080 33,859,080 0.0%
_GUARD_NOT_EXHAUSTED_LIST 23,017,080 23,017,080 0.0%
_ITER_CHECK_LIST 23,017,080 23,017,080 0.0%
_BINARY_OP_ADD_FLOAT 23,016,960 23,016,960 0.0%
_STORE_FAST_3 23,016,960 23,016,960 0.0%
_RESUME_CHECK 23,016,840 23,016,840 0.0%
_CHECK_FUNCTION_EXACT_ARGS 23,016,840 23,016,840 0.0%
_CHECK_FUNCTION_VERSION 23,016,840 23,016,840 0.0%
_CHECK_STACK_SPACE_OPERAND 23,016,840 23,016,840 0.0%
_ITER_NEXT_LIST 23,016,840 23,016,840 0.0%
_LOAD_METHOD_NO_DICT 23,016,840 23,016,840 0.0%
_SAVE_RETURN_OFFSET 23,016,840 23,016,840 0.0%
_RETURN_VALUE 23,000,520 23,000,520 0.0%
_JUMP_TO_TOP 23,000,520 23,000,520 0.0%
_STORE_FAST_1 23,000,520 23,000,520 0.0%
_START_EXECUTOR 22,787,960 22,787,960 0.0%
_CHECK_VALIDITY_AND_SET_IP 22,683,780 22,683,780 0.0%
_LOAD_CONST_INLINE_BORROW 22,683,780 22,683,780 0.0%
_BINARY_OP_EXTEND 22,350,600 22,350,600 0.0%
_GUARD_BINARY_OP_EXTEND 22,350,600 22,350,600 0.0%
_GUARD_NOT_EXHAUSTED_RANGE 11,590,500 11,590,500 0.0%
_ITER_CHECK_RANGE 11,590,500 11,590,500 0.0%
_CHECK_AND_ALLOCATE_OBJECT 11,590,380 11,590,380 0.0%
_CREATE_INIT_FRAME 11,590,380 11,590,380 0.0%
_DYNAMIC_EXIT 11,590,380 11,590,380 0.0%
_ITER_NEXT_RANGE 11,590,380 11,590,380 0.0%
_POP_TOP 11,508,480 11,508,480 0.0%
_INIT_CALL_PY_EXACT_ARGS_0 11,508,480 11,508,480 0.0%
_STORE_FAST_4 11,508,480 11,508,480 0.0%
_INIT_CALL_PY_EXACT_ARGS_1 11,508,360 11,508,360 0.0%
_EXIT_TRACE 11,191,980 11,191,980 0.0%
_TIER2_RESUME_CHECK 11,180,900 11,180,900 0.0%
_LOAD_SMALL_INT_2 11,175,300 11,175,300 0.0%
_LOAD_SMALL_INT_3 11,175,300 11,175,300 0.0%
_DEOPT 5,600 5,600 0.0%

Pair counts

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.

Not included in comparative output.

Unsupported opcodes

unsupported opcodes

Optimizer errored out with opcode

Optimization stopped after encountering this opcode

Rare events

Counts of rare/unlikely events
Event Base Count Head Count Change
set class

Setting an object's class, obj.__class__ = ...

0 0
set bases

Setting the bases of a class, cls.__bases__ = ...

0 0
set eval frame func

Setting the PEP 523 frame eval function _PyInterpreterState_SetFrameEvalFunc()

0 0
builtin dict

Modifying the builtins, __builtins__.__dict__[var] = ...

0 0
func modification

Modifying a function, e.g. func.__defaults__ = ..., etc.

0 0
watched dict modification

A watched dict has been modified

0 0
watched globals modification

A watched globals() dict has been modified

0 0

Meta stats

Meta statistics
Base Count Head Count Change
Number of data files 20 20 0.0%

Stats gathered on: 2025-01-22