Skip to content

Latest commit

 

History

History
3892 lines (3640 loc) · 79.9 KB

bm-20241025-azure-x86_64-brandtbucher-justin_no_externs-3.14.0a1+-64b198a-pystats-dulwich_log-vs-base.md

File metadata and controls

3892 lines (3640 loc) · 79.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
LOAD_FAST 58,480,400 58,480,400 0.0%
LOAD_CONST 22,602,540 22,602,540 0.0%
STORE_FAST 16,055,540 16,055,540 0.0%
RESUME_CHECK 12,794,000 12,794,000 0.0%
RETURN_VALUE 11,105,940 11,105,940 0.0%
POP_JUMP_IF_FALSE 10,125,960 10,125,960 0.0%
LOAD_ATTR_METHOD_NO_DICT 9,713,640 9,713,640 0.0%
LOAD_ATTR_INSTANCE_VALUE 9,687,760 9,687,760 0.0%
LOAD_GLOBAL_MODULE 9,007,180 9,007,180 0.0%
STORE_ATTR_SLOT 7,692,360 7,692,360 0.0%
CALL_PY_EXACT_ARGS 7,479,860 7,479,860 0.0%
LOAD_FAST_LOAD_FAST 6,821,460 6,821,460 0.0%
LOAD_GLOBAL_BUILTIN 6,368,900 6,368,900 0.0%
LOAD_ATTR_SLOT 6,157,440 6,157,440 0.0%
TO_BOOL_BOOL 3,933,540 3,933,540 0.0%
COMPARE_OP 3,904,420 3,904,420 0.0%
POP_TOP 3,886,840 3,886,840 0.0%
BINARY_OP_ADD_INT 3,522,960 3,522,960 0.0%
STORE_FAST_STORE_FAST 3,189,780 3,189,780 0.0%
CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 3,173,280 3,173,280 0.0%
UNPACK_SEQUENCE_TWO_TUPLE 3,002,100 3,002,100 0.0%
POP_JUMP_IF_NONE 2,801,860 2,801,860 0.0%
RETURN_CONST 2,621,340 2,621,340 0.0%
LOAD_ATTR_METHOD_WITH_VALUES 2,430,260 2,430,260 0.0%
BINARY_OP_MULTIPLY_INT 2,325,240 2,325,240 0.0%
POP_JUMP_IF_TRUE 2,287,860 2,287,860 0.0%
COMPARE_OP_INT 2,064,520 2,064,520 0.0%
BUILD_LIST 2,064,240 2,064,240 0.0%
BUILD_TUPLE 2,062,920 2,062,920 0.0%
ENTER_EXECUTOR 2,061,860 2,061,860 0.0%
NOP 2,059,140 2,059,140 0.0%
LOAD_ATTR_PROPERTY 2,054,180 2,054,180 0.0%
INTERPRETER_EXIT 1,946,760 1,946,760 0.0%
BINARY_OP 1,875,580 1,875,580 0.0%
CALL_BUILTIN_CLASS 1,874,100 1,874,100 0.0%
POP_JUMP_IF_NOT_NONE 1,873,440 1,873,440 0.0%
LOAD_DEREF 1,873,140 1,873,140 0.0%
BINARY_SUBSCR 1,688,900 1,688,900 0.0%
LOAD_ATTR_MODULE 1,679,220 1,679,220 0.0%
BINARY_SLICE 1,574,880 1,574,880 0.0%
PUSH_NULL 1,497,480 1,497,480 0.0%
CALL_METHOD_DESCRIPTOR_FAST 1,496,760 1,496,760 0.0%
CALL_METHOD_DESCRIPTOR_O 1,306,120 1,306,120 0.0%
COPY 1,167,480 1,167,480 0.0%
CALL_BUILTIN_O 1,125,600 1,125,600 0.0%
GET_ITER 1,124,460 1,124,460 0.0%
YIELD_VALUE 940,080 940,080 0.0%
CALL_LEN 938,740 938,740 0.0%
CONTAINS_OP 938,100 938,100 0.0%
CONTAINS_OP_SET 935,040 935,040 0.0%
CALL_BUILTIN_FAST 934,180 934,180 0.0%
STORE_ATTR_INSTANCE_VALUE 753,840 753,840 0.0%
CALL_NON_PY_GENERAL 751,380 751,380 0.0%
CALL_ISINSTANCE 749,520 749,520 0.0%
BINARY_SUBSCR_LIST_INT 749,160 749,160 0.0%
CALL_PY_GENERAL 747,660 747,660 0.0%
CALL_BUILTIN_FAST_WITH_KEYWORDS 746,400 746,400 0.0%
FOR_ITER 564,640 564,640 0.0%
LOAD_ATTR 563,280 563,280 0.0%
UNPACK_SEQUENCE_LIST 563,040 563,040 0.0%
UNPACK_SEQUENCE_TUPLE 563,040 563,040 0.0%
COPY_FREE_VARS 560,220 560,220 0.0%
CHECK_EXC_MATCH 559,800 559,800 0.0%
POP_EXCEPT 559,800 559,800 0.0%
PUSH_EXC_INFO 559,800 559,800 0.0%
TO_BOOL_INT 417,960 417,960 0.0%
UNARY_NEGATIVE 416,520 416,520 0.0%
JUMP_FORWARD 378,540 378,540 0.0%
CALL_LIST_APPEND 376,680 376,680 0.0%
CALL_KW_PY 375,000 375,000 0.0%
SWAP 373,920 373,920 0.0%
BINARY_SUBSCR_DICT 373,920 373,920 0.0%
BINARY_OP_ADD_UNICODE 372,480 372,480 0.0%
BINARY_SUBSCR_GETITEM 371,640 371,640 0.0%
MAKE_FUNCTION 187,860 187,860 0.0%
BINARY_SUBSCR_TUPLE_INT 187,740 187,740 0.0%
END_FOR 187,680 187,680 0.0%
RETURN_GENERATOR 187,680 187,680 0.0%
FOR_ITER_GEN 187,680 187,680 0.0%
LOAD_SUPER_ATTR_METHOD 187,680 187,680 0.0%
CALL_METHOD_DESCRIPTOR_NOARGS 187,520 187,520 0.0%
LOAD_ATTR_METHOD_LAZY_DICT 187,320 187,320 0.0%
MAKE_CELL 187,140 187,140 0.0%
BINARY_OP_SUBTRACT_INT 186,840 186,840 0.0%
TO_BOOL 186,420 186,420 0.0%
EXIT_INIT_CHECK 186,360 186,360 0.0%
EXTENDED_ARG 186,360 186,360 0.0%
TO_BOOL_LIST 186,360 186,360 0.0%
BINARY_OP_INPLACE_ADD_UNICODE 186,240 186,240 0.0%
CALL_KW_NON_PY 186,240 186,240 0.0%
FOR_ITER_LIST 186,240 186,240 0.0%
FOR_ITER_TUPLE 186,240 186,240 0.0%
TO_BOOL_STR 186,240 186,240 0.0%
CALL_ALLOC_AND_ENTER_INIT 2,520 2,520 0.0%
IS_OP 780 780 0.0%
JUMP_BACKWARD 420 420 0.0%
CALL 260 260 0.0%
TO_BOOL_NONE 240 240 0.0%
CALL_FUNCTION_EX 180 180 0.0%
SET_FUNCTION_ATTRIBUTE 180 180 0.0%
FOR_ITER_RANGE 180 180 0.0%
BUILD_MAP 120 120 0.0%
CALL_INTRINSIC_1 120 120 0.0%
DICT_MERGE 120 120 0.0%
IMPORT_FROM 120 120 0.0%
IMPORT_NAME 120 120 0.0%
LIST_EXTEND 120 120 0.0%
COMPARE_OP_STR 120 120 0.0%
STORE_SUBSCR_DICT 120 120 0.0%
LOAD_GLOBAL 100 100 0.0%
STORE_DEREF 60 60 0.0%
BINARY_OP_SUBTRACT_FLOAT 60 60 0.0%
UNPACK_SEQUENCE 20 20 0.0%

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,875,000 21.7% 1,875,000 21.7% 0.0%
hit

Specialized instructions that complete.

6,781,140 78.3% 6,781,140 78.3% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 20 3.4% 20 3.4% 0.0%
Failure 560 96.6% 560 96.6% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
and int 240 42.9% 240 42.9% 0.0%
remainder 100 17.9% 100 17.9% 0.0%
true divide other 100 17.9% 100 17.9% 0.0%
lshift 60 10.7% 60 10.7% 0.0%
rshift 60 10.7% 60 10.7% 0.0%

BINARY_SLICE

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

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

1,574,880 100.0% 1,574,880 100.0% 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.

1,688,400 50.0% 1,688,400 50.0% 0.0%
hit

Specialized instructions that complete.

1,686,180 50.0% 1,686,180 50.0% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 20 4.0% 20 4.0% 0.0%
Failure 480 96.0% 480 96.0% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
buffer slice 320 66.7% 320 66.7% 0.0%
buffer int 100 20.8% 100 20.8% 0.0%
list slice 60 12.5% 60 12.5% 0.0%

CALL

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

Specialized instructions that complete.

27,516,540 100.0% 27,516,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
deferred

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

3,903,360 52.3% 3,903,360 52.3% 0.0%
hit

Specialized instructions that complete.

3,561,780 47.7% 3,561,780 47.7% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 20 1.9% 20 1.9% 0.0%
Failure 1,040 98.1% 1,040 98.1% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
bytes 720 69.2% 720 69.2% 0.0%
different types 320 30.8% 320 30.8% 0.0%

CONTAINS_OP

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

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

937,800 45.6% 937,800 45.6% 0.0%
hit

Specialized instructions that complete.

1,118,880 54.4% 1,118,880 54.4% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 0 0.0% 0 0.0%
Failure 300 100.0% 300 100.0% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
tuple 200 66.7% 200 66.7% 0.0%
other 100 33.3% 100 33.3% 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.

564,420 27.3% 564,420 27.3% 0.0%
hit

Specialized instructions that complete.

1,500,420 72.7% 1,500,420 72.7% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 0 0.0% 0 0.0%
Failure 220 100.0% 220 100.0% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
other 60 27.3% 60 27.3% 0.0%
enumerate 60 27.3% 60 27.3% 0.0%
reversed list 60 27.3% 60 27.3% 0.0%
itertools 40 18.2% 40 18.2% 0.0%

LOAD_ATTR

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

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

562,860 1.4% 562,860 1.4% 0.0%
hit

Specialized instructions that complete.

38,836,740 98.6% 38,836,740 98.6% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 200 47.6% 200 47.6% 0.0%
Failure 220 52.4% 220 52.4% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
method 140 63.6% 140 63.6% 0.0%
non overriding descriptor 60 27.3% 60 27.3% 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.

15,376,080 100.0% 15,376,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_SUPER_ATTR

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

Specialized instructions that complete.

187,680 100.0% 187,680 100.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.

9,932,400 100.0% 9,932,400 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.

120 100.0% 120 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.

186,320 2.5% 186,320 2.5% 0.0%
hit

Specialized instructions that complete.

7,349,940 97.5% 7,349,940 97.5% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 20 20.0% 20 20.0% 0.0%
Failure 80 80.0% 80 80.0% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
sequence 80 100.0% 80 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.

4,692,900 100.0% 4,692,900 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%

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
Basic

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

163,184,540 57.0% 163,184,540 57.0% 0.0%
Not specialized

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

11,296,600 3.9% 11,296,600 3.9% 0.0%
Specialized hits

Specialized instructions, e.g. LOAD_ATTR_MODULE that complete.

111,854,280 39.1% 111,854,280 39.1% 0.0%
Specialized misses

Specialized instructions, e.g. LOAD_ATTR_MODULE that deopt.

0 0.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
COMPARE_OP 3,903,360 34.6% 3,903,360 34.6% 0.0%
BINARY_OP 1,875,000 16.6% 1,875,000 16.6% 0.0%
BINARY_SUBSCR 1,688,400 15.0% 1,688,400 15.0% 0.0%
BINARY_SLICE 1,574,880 13.9% 1,574,880 13.9% 0.0%
CONTAINS_OP 937,800 8.3% 937,800 8.3% 0.0%
FOR_ITER 564,420 5.0% 564,420 5.0% 0.0%
LOAD_ATTR 562,860 5.0% 562,860 5.0% 0.0%
TO_BOOL 186,320 1.6% 186,320 1.6% 0.0%
STORE_SLICE 0 0.0% 0 0.0%
CACHE 0 0.0% 0 0.0%

Misses by instruction

Breakdown of misses (specialized deopts) instruction counts by family

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 1,946,820 12.0% 1,946,820 12.0% 0.0%
Calls to Python functions inlined 14,221,620 88.0% 14,221,620 88.0% 0.0%
Calls via PyEval_EvalFrame (total) 1,946,820 12.0% 1,946,820 12.0% 0.0%
Calls via PyEval_EvalFrame (vector) 1,946,820 12.0% 1,946,820 12.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) 1,946,820 12.0% 1,946,820 12.0% 0.0%
Calls via PyEval_EvalFrame (build class) 0 0.0% 0 0.0%
Calls via PyEval_EvalFrame (slot) 186,960 1.2% 186,960 1.2% 0.0%
Calls via PyEval_EvalFrame (function ex) 0 0.0% 0 0.0%
Calls via PyEval_EvalFrame (api) 120 0.0% 120 0.0% 0.0%
Calls via PyEval_EvalFrame (method) 0 0.0% 0 0.0%
Frame objects created 747,120 4.6% 747,120 4.6% 0.0%
Frames pushed 15,227,040 94.2% 15,227,040 94.2% 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 dunder misses 2,092 949 -54.6%
Method cache misses 187,501 188,075 0.3%
Method cache collisions 188,749 188,257 -0.3%
Method cache dunder hits 1,496,408 1,497,551 0.1%
Immortal decrefs 39,752,838 11.9% 39,780,687 11.9% 0.1%
Method cache hits 1,873,139 1,872,565 -0.0%
Immortal increfs 48,557,192 16.1% 48,566,564 16.1% 0.0%
Mortal increfs 69,094,442 22.9% 69,102,700 22.9% 0.0%
Mortal decrefs 83,960,164 25.1% 83,968,713 25.1% 0.0%
Frees 29,131,204 29,131,580 0.0%
Allocations to 512 bytes 28,030,758 68.3% 28,030,860 68.3% 0.0%
Allocations 28,603,318 69.7% 28,603,420 69.7% 0.0%
Allocations from freelist 12,443,400 30.3% 12,443,400 30.3% 0.0%
Frees to freelist 12,443,260 12,443,260 0.0%
Allocations to 4 kbytes 197,200 0.5% 197,200 0.5% 0.0%
Allocations over 4 kbytes 375,360 0.9% 375,360 0.9% 0.0%
Inline values 372,720 372,720 0.0%
Interpreter mortal increfs 139,042,300 46.1% 139,042,300 46.1% 0.0%
Interpreter mortal decrefs 162,777,420 48.7% 162,777,420 48.6% 0.0%
Interpreter immortal increfs 44,882,220 14.9% 44,882,220 14.9% 0.0%
Interpreter immortal decrefs 48,081,300 14.4% 48,081,300 14.4% 0.0%
Materialize dict (on request) 0 0.0% 0 0.0%
Materialize dict (new key) 0 0.0% 0 0.0%
Materialize dict (too big) 0 0.0% 0 0.0%
Materialize dict (str subclass) 0 0.0% 0 0.0%

GC stats

GC collections and effectiveness

Collected/visits gives some measure of efficiency.

Generation Base Collections Base Objects collected Base Object visits Head Collections Head Objects collected Head Object visits
0 0 0 0 0 0 0
1 0 0 0 0 0 0
2 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.

740 740 0.0%
Traces created

The number of traces that were successfully created.

60 8.1% 60 8.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.

700 94.6% 700 94.6% 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 abandoced because it it too short.

680 91.9% 680 91.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

4,871,720 4,871,720 0.0%
Uops executed

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

161,299,100 3,310.9% 161,299,100 3,310.9% 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.

60 60 0.0%
Optimizer successes

The number of traces that were successfully optimized.

60 100.0% 60 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 20 33.3% 20 33.3% 0.0%
<= 64 0 0.0% 0 0.0%
<= 128 0 0.0% 0 0.0%
<= 256 40 66.7% 40 66.7% 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 20 33.3% 20 33.3% 0.0%
<= 32 0 0.0% 0 0.0%
<= 64 0 0.0% 0 0.0%
<= 128 40 66.7% 40 66.7% 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 15,177,360 15,177,360 0.0%
_CHECK_VALIDITY 12,174,160 12,174,160 0.0%
_CHECK_PERIODIC 6,757,600 6,757,600 0.0%
_GUARD_TYPE_VERSION 6,731,780 6,731,780 0.0%
_MAKE_WARM 5,245,160 5,245,160 0.0%
_LOAD_FAST_0 5,057,120 5,057,120 0.0%
_START_EXECUTOR 4,871,720 4,871,720 0.0%
_LOAD_CONST_INLINE 4,509,000 4,509,000 0.0%
_LOAD_FAST_2 3,745,340 3,745,340 0.0%
_GUARD_IS_FALSE_POP 3,745,080 3,745,080 0.0%
_EXIT_TRACE 3,557,620 3,557,620 0.0%
_LOAD_FAST_1 3,368,760 3,368,760 0.0%
_LOAD_CONST_INLINE_BORROW 3,366,500 3,366,500 0.0%
_LOAD_ATTR_METHOD_NO_DICT 3,005,760 3,005,760 0.0%
_PUSH_FRAME 3,003,080 3,003,080 0.0%
_LOAD_FAST 2,997,120 2,997,120 0.0%
_LOAD_FAST_6 2,811,840 2,811,840 0.0%
_GUARD_IS_TRUE_POP 2,627,400 2,627,400 0.0%
_CHECK_VALIDITY_AND_SET_IP 2,439,720 2,439,720 0.0%
_TO_BOOL_BOOL 2,250,960 2,250,960 0.0%
_LOAD_CONST_INLINE_WITH_NULL 2,242,480 2,242,480 0.0%
_SAVE_RETURN_OFFSET 1,875,440 1,875,440 0.0%
_POP_TOP 1,873,340 1,873,340 0.0%
_CALL_METHOD_DESCRIPTOR_FAST 1,692,480 1,692,480 0.0%
_RESUME_CHECK 1,688,980 1,688,980 0.0%
_STORE_FAST 1,685,880 1,685,880 0.0%
_LOAD_FAST_3 1,684,440 1,684,440 0.0%
_CHECK_MANAGED_OBJECT_HAS_VALUES 1,672,520 1,672,520 0.0%
_LOAD_ATTR_INSTANCE_VALUE_0 1,672,520 1,672,520 0.0%
_CHECK_FUNCTION_EXACT_ARGS 1,501,660 1,501,660 0.0%
_CHECK_FUNCTION_VERSION 1,501,660 1,501,660 0.0%
_PUSH_NULL 1,500,720 1,500,720 0.0%
_TIER2_RESUME_CHECK 1,497,780 1,497,780 0.0%
_COMPARE_OP_INT 1,497,140 1,497,140 0.0%
_INIT_CALL_PY_EXACT_ARGS_1 1,315,300 1,315,300 0.0%
_BUILD_TUPLE 1,314,720 1,314,720 0.0%
_BINARY_SUBSCR 1,314,360 1,314,360 0.0%
_DYNAMIC_EXIT 1,314,100 1,314,100 0.0%
_RETURN_VALUE 1,312,440 1,312,440 0.0%
_FOR_ITER_TIER_TWO 1,312,320 1,312,320 0.0%
_CALL_LEN 1,309,820 1,309,820 0.0%
_CHECK_FUNCTION 1,306,340 1,306,340 0.0%
_GUARD_DORV_NO_DICT 1,298,880 1,298,880 0.0%
_STORE_ATTR_INSTANCE_VALUE 1,298,880 1,298,880 0.0%
_TO_BOOL 1,127,140 1,127,140 0.0%
_LOAD_FAST_5 1,127,040 1,127,040 0.0%
_STORE_FAST_6 1,123,560 1,123,560 0.0%
_CHECK_STACK_SPACE_OPERAND 942,580 942,580 0.0%
_FOR_ITER_GEN_FRAME 940,080 940,080 0.0%
_LOAD_FAST_4 939,720 939,720 0.0%
_COMPARE_OP 938,760 938,760 0.0%
_GUARD_IS_NOT_NONE_POP 938,500 938,500 0.0%
_STORE_FAST_3 938,400 938,400 0.0%
_LOAD_ATTR_SLOT_0 936,600 936,600 0.0%
_LOAD_FAST_7 936,600 936,600 0.0%
_GUARD_NOS_INT 935,180 935,180 0.0%
_LOAD_DEREF 922,920 922,920 0.0%
_STORE_FAST_2 751,780 751,780 0.0%
_GUARD_IS_NONE_POP 746,500 746,500 0.0%
_UNPACK_SEQUENCE_LIST 564,720 564,720 0.0%
_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 564,720 564,720 0.0%
_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT 562,900 562,900 0.0%
_GUARD_KEYS_VERSION 562,900 562,900 0.0%
_LOAD_ATTR_METHOD_WITH_VALUES 562,900 562,900 0.0%
_CALL_LIST_APPEND 561,960 561,960 0.0%
_GUARD_BOTH_INT 561,960 561,960 0.0%
_STORE_FAST_4 377,400 377,400 0.0%
_CHECK_ATTR_METHOD_LAZY_DICT 375,360 375,360 0.0%
_LOAD_ATTR_METHOD_LAZY_DICT 375,360 375,360 0.0%
_CALL_BUILTIN_FAST 375,140 375,140 0.0%
_LOAD_CONST 374,640 374,640 0.0%
_TO_BOOL_INT 374,640 374,640 0.0%
_BINARY_OP 374,640 374,640 0.0%
_CALL_NON_PY_GENERAL 374,640 374,640 0.0%
_CHECK_IS_NOT_PY_CALLABLE 374,640 374,640 0.0%
_STORE_FAST_7 374,640 374,640 0.0%
_CALL_METHOD_DESCRIPTOR_NOARGS 374,140 374,140 0.0%
_CALL_BUILTIN_O 373,680 373,680 0.0%
_JUMP_TO_TOP 373,440 373,440 0.0%
_STORE_FAST_5 371,160 371,160 0.0%
_GUARD_NOT_EXHAUSTED_LIST 187,560 187,560 0.0%
_ITER_CHECK_LIST 187,560 187,560 0.0%
_BUILD_LIST 187,320 187,320 0.0%
_BINARY_OP_ADD_INT 187,320 187,320 0.0%
_CALL_BUILTIN_FAST_WITH_KEYWORDS 187,320 187,320 0.0%
_CHECK_ATTR_MODULE 187,320 187,320 0.0%
_CHECK_FUNCTION_VERSION_KW 187,320 187,320 0.0%
_LOAD_ATTR_MODULE 187,320 187,320 0.0%
_PY_FRAME_KW 187,320 187,320 0.0%
_STORE_ATTR_SLOT 187,320 187,320 0.0%
_LOAD_ATTR_PROPERTY_FRAME 186,460 186,460 0.0%
_GET_ITER 186,360 186,360 0.0%
_INIT_CALL_PY_EXACT_ARGS_0 186,360 186,360 0.0%
_GUARD_NOT_EXHAUSTED_TUPLE 186,240 186,240 0.0%
_BUILD_MAP 186,240 186,240 0.0%
_ITER_CHECK_TUPLE 186,240 186,240 0.0%
_STORE_FAST_1 186,120 186,120 0.0%
_CONTAINS_OP_SET 183,840 183,840 0.0%
_CHECK_AND_ALLOCATE_OBJECT 183,840 183,840 0.0%
_CREATE_INIT_FRAME 183,840 183,840 0.0%
_BINARY_SUBSCR_CHECK_FUNC 3,720 3,720 0.0%
_BINARY_SUBSCR_INIT_CALL 3,720 3,720 0.0%
_ITER_NEXT_LIST 3,720 3,720 0.0%
_CALL_METHOD_DESCRIPTOR_O 500 500 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: 2024-10-25