Skip to content

Latest commit

 

History

History
3677 lines (3426 loc) · 74.9 KB

bm-20241025-azure-x86_64-brandtbucher-justin_no_externs-3.14.0a1+-5791853-pystats-django_template-vs-base.md

File metadata and controls

3677 lines (3426 loc) · 74.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
BINARY_SUBSCR_GETITEM 1 3 200.0%
POP_JUMP_IF_NONE 301 299 -0.7%
NOP 1,751 1,755 0.2%
CONTAINS_OP 921 923 0.2%
FOR_ITER_TUPLE 24,481 24,483 0.0%
SWAP 50,881 50,883 0.0%
CALL_PY_GENERAL 4,825,085 4,825,080 -0.0%
CALL_BUILTIN_CLASS 2,424,301 2,424,303 0.0%
FOR_ITER 2,424,942 2,424,944 0.0%
BINARY_SUBSCR 2,448,861 2,448,863 0.0%
LOAD_ATTR_METHOD_WITH_VALUES 2,475,090 2,475,088 -0.0%
LOAD_FAST_LOAD_FAST 12,196,383 12,196,389 0.0%
POP_JUMP_IF_TRUE 4,848,541 4,848,543 0.0%
GET_ITER 9,745,982 9,745,986 0.0%
POP_TOP 4,973,821 4,973,823 0.0%
CALL_PY_EXACT_ARGS 14,499,865 14,499,868 0.0%
CALL_ISINSTANCE 16,800,281 16,800,284 0.0%
STORE_FAST 41,118,883 41,118,889 0.0%
LOAD_ATTR_INSTANCE_VALUE 14,669,910 14,669,912 0.0%
LOAD_GLOBAL_BUILTIN 55,422,342 55,422,347 0.0%
LOAD_GLOBAL_MODULE 38,474,441 38,474,444 0.0%
POP_JUMP_IF_FALSE 43,347,521 43,347,524 0.0%
ENTER_EXECUTOR 14,595,003 14,595,004 0.0%
TO_BOOL_BOOL 48,170,981 48,170,984 0.0%
RESUME_CHECK 36,247,412 36,247,413 0.0%
LOAD_FAST 123,608,665 123,608,667 0.0%
LOAD_CONST 62,986,020 62,986,020 0.0%
RETURN_VALUE 53,190,420 53,190,420 0.0%
CALL_BUILTIN_FAST 16,850,160 16,850,160 0.0%
LOAD_ATTR_METHOD_NO_DICT 14,474,280 14,474,280 0.0%
PUSH_NULL 12,025,560 12,025,560 0.0%
CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 12,000,000 12,000,000 0.0%
INTERPRETER_EXIT 7,371,600 7,371,600 0.0%
CALL_LIST_APPEND 7,297,200 7,297,200 0.0%
CALL_BUILTIN_O 7,272,960 7,272,960 0.0%
CALL_FUNCTION_EX 7,249,500 7,249,500 0.0%
RETURN_CONST 4,898,820 4,898,820 0.0%
BUILD_MAP 4,873,920 4,873,920 0.0%
BUILD_LIST 4,873,440 4,873,440 0.0%
JUMP_FORWARD 4,873,260 4,873,260 0.0%
FOR_ITER_LIST 4,873,020 4,873,020 0.0%
DICT_MERGE 4,849,440 4,849,440 0.0%
COPY_FREE_VARS 4,849,260 4,849,260 0.0%
LOAD_DEREF 4,849,260 4,849,260 0.0%
CALL_NON_PY_GENERAL 4,825,500 4,825,500 0.0%
BINARY_SUBSCR_LIST_INT 4,824,240 4,824,240 0.0%
CALL_KW_PY 4,824,240 4,824,240 0.0%
CALL_STR_1 4,800,720 4,800,720 0.0%
LOAD_ATTR_MODULE 4,800,180 4,800,180 0.0%
STORE_SUBSCR 2,497,400 2,497,400 0.0%
YIELD_VALUE 2,472,960 2,472,960 0.0%
COPY 2,448,960 2,448,960 0.0%
RETURN_GENERATOR 2,424,720 2,424,720 0.0%
CALL_INTRINSIC_1 2,424,480 2,424,480 0.0%
LIST_EXTEND 2,424,480 2,424,480 0.0%
MAKE_FUNCTION 2,424,300 2,424,300 0.0%
STORE_FAST_STORE_FAST 2,424,300 2,424,300 0.0%
UNPACK_SEQUENCE_TWO_TUPLE 2,424,300 2,424,300 0.0%
CALL_TYPE_1 2,400,480 2,400,480 0.0%
CALL_METHOD_DESCRIPTOR_NOARGS 2,400,060 2,400,060 0.0%
STORE_SUBSCR_LIST_INT 2,400,000 2,400,000 0.0%
STORE_SUBSCR_DICT 145,440 145,440 0.0%
COMPARE_OP_INT 97,260 97,260 0.0%
BINARY_OP_SUBTRACT_INT 96,960 96,960 0.0%
LOAD_SPECIAL 49,440 49,440 0.0%
CALL_LEN 48,720 48,720 0.0%
CONTAINS_OP_DICT 48,240 48,240 0.0%
STORE_ATTR_INSTANCE_VALUE 27,120 27,120 0.0%
POP_JUMP_IF_NOT_NONE 25,500 25,500 0.0%
CALL_METHOD_DESCRIPTOR_O 24,540 24,540 0.0%
LOAD_SUPER_ATTR_ATTR 24,480 24,480 0.0%
BUILD_TUPLE 24,360 24,360 0.0%
MAKE_CELL 24,300 24,300 0.0%
SET_FUNCTION_ATTRIBUTE 24,300 24,300 0.0%
LOAD_FAST_CHECK 24,240 24,240 0.0%
STORE_FAST_LOAD_FAST 24,240 24,240 0.0%
BINARY_OP_ADD_INT 24,240 24,240 0.0%
DELETE_ATTR 1,440 1,440 0.0%
STORE_ATTR 1,080 1,080 0.0%
JUMP_BACKWARD 600 600 0.0%
CHECK_EXC_MATCH 480 480 0.0%
POP_EXCEPT 480 480 0.0%
PUSH_EXC_INFO 480 480 0.0%
LOAD_ATTR_CLASS_WITH_METACLASS_CHECK 480 480 0.0%
LOAD_ATTR 280 280 0.0%
FOR_ITER_RANGE 280 280 0.0%
CALL 260 260 0.0%
CALL_METHOD_DESCRIPTOR_FAST 240 240 0.0%
TO_BOOL 100 100 0.0%
LOAD_GLOBAL 100 100 0.0%
IS_OP 60 60 0.0%
STORE_DEREF 60 60 0.0%
BINARY_OP_SUBTRACT_FLOAT 60 60 0.0%
BINARY_SUBSCR_TUPLE_INT 60 60 0.0%
BINARY_OP 20 20 0.0%
COMPARE_OP 20 20 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
hit

Specialized instructions that complete.

12,120,060 100.0% 12,120,060 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%

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.

2,448,241 20.2% 2,448,243 20.2% 0.0%
hit

Specialized instructions that complete.

9,672,300 79.8% 9,672,300 79.8% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 20 3.2% 20 3.2% 0.0%
Failure 600 96.8% 600 96.8% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
out of range 600 100.0% 600 100.0% 0.0%

CALL

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

Specialized instructions that deopt.

183 0.0% 185 0.0% 1.1%
hit

Specialized instructions that complete.

111,133,917 100.0% 111,133,915 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.

4,921,020 100.0% 4,921,020 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%

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.

461 0.6% 463 0.6% 0.4%
hit

Specialized instructions that complete.

48,480 66.0% 48,480 66.0% 0.0%
miss

Specialized instructions that deopt.

24,000 32.7% 24,000 32.7% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 460 50.0% 460 50.0% 0.0%
Failure 460 50.0% 460 50.0% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
other 460 100.0% 460 100.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.

2,424,301 33.1% 2,424,303 33.1% 0.0%
hit

Specialized instructions that complete.

4,897,781 66.9% 4,897,783 66.9% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 0 0.0% 0 0.0%
Failure 641 100.0% 641 100.0% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
itertools 600 93.6% 600 93.6% 0.0%
enumerate 40 6.2% 40 6.2% 0.0%
reversed list 1 0.2% 1 0.2% 0.0%

LOAD_ATTR

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

Specialized instructions that deopt.

1,383 0.0% 1,385 0.0% 0.1%
hit

Specialized instructions that complete.

89,749,437 100.0% 89,749,435 100.0% -0.0%
deferred

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

60 0.0% 60 0.0% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 200 90.9% 200 90.9% 0.0%
Failure 20 9.1% 20 9.1% 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.

93,896,783 100.0% 93,896,791 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.

24,480 100.0% 24,480 100.0% 0.0%

STORE_ATTR

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

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

960 3.4% 960 3.4% 0.0%
hit

Specialized instructions that complete.

27,120 96.2% 27,120 96.2% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 0 0.0% 0 0.0%
Failure 120 100.0% 120 100.0% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
class attr simple 120 100.0% 120 100.0% 0.0%

STORE_SUBSCR

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

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

2,496,720 12.8% 2,496,720 12.8% 0.0%
hit

Specialized instructions that complete.

16,944,000 87.2% 16,944,000 87.2% 0.0%
Success Base Count Base Ratio Head Count Head Ratio Change
Success 0 0.0% 0 0.0%
Failure 680 100.0% 680 100.0% 0.0%
Failure kind Base Count Base Ratio Head Count Head Ratio Change
dict subclass no override 600 88.2% 600 88.2% 0.0%
py simple 80 11.8% 80 11.8% 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 0.0% 60 0.0% 0.0%
hit

Specialized instructions that complete.

55,419,420 100.0% 55,419,420 100.0% 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.

4,824,060 100.0% 4,824,060 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
Specialized misses

Specialized instructions, e.g. LOAD_ATTR_MODULE that deopt.

25,923 0.0% 25,934 0.0% 0.0%
Not specialized

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

7,374,004 0.9% 7,374,010 0.9% 0.0%
Basic

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

448,622,412 57.0% 448,622,442 57.0% 0.0%
Specialized hits

Specialized instructions, e.g. LOAD_ATTR_MODULE that complete.

331,013,727 42.1% 331,013,735 42.1% 0.0%

Deferred by instruction

Breakdown of deferred (not specialized) instruction counts by family
Name Base Count Base Ratio Head Count Head Ratio Change
CONTAINS_OP 461 0.0% 463 0.0% 0.4%
FOR_ITER 2,424,301 32.9% 2,424,303 32.9% 0.0%
BINARY_SUBSCR 2,448,241 33.2% 2,448,243 33.2% 0.0%
STORE_SUBSCR 2,496,720 33.9% 2,496,720 33.9% 0.0%
STORE_ATTR 960 0.0% 960 0.0% 0.0%
TO_BOOL 60 0.0% 60 0.0% 0.0%
LOAD_ATTR 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%

Misses by instruction

Breakdown of misses (specialized deopts) instruction counts by family
Name Base Count Base Ratio Head Count Head Ratio Change
RESUME 357 1.4% 364 1.4% 2.0%
RESUME_CHECK 357 1.4% 364 1.4% 2.0%
CALL_PY_EXACT_ARGS 183 0.7% 185 0.7% 1.1%
LOAD_ATTR_METHOD_WITH_VALUES 663 2.5% 665 2.5% 0.3%
CONTAINS_OP_DICT 24,000 91.3% 24,000 91.3% 0.0%
LOAD_ATTR_INSTANCE_VALUE 720 2.7% 720 2.7% 0.0%
CACHE 0 0.0% 0 0.0%
CHECK_EXC_MATCH 0 0.0% 0 0.0%
GET_ITER 0 0.0% 0 0.0%
INTERPRETER_EXIT 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 7,371,660 11.7% 7,371,660 11.7% 0.0%
Calls to Python functions inlined 55,615,260 88.3% 55,615,260 88.3% 0.0%
Calls via PyEval_EvalFrame (total) 7,371,660 11.7% 7,371,660 11.7% 0.0%
Calls via PyEval_EvalFrame (vector) 2,497,980 4.0% 2,497,980 4.0% 0.0%
Calls via PyEval_EvalFrame (generator) 4,873,680 7.7% 4,873,680 7.7% 0.0%
Calls via PyEval_EvalFrame (legacy) 0 0.0% 0 0.0%
Calls via PyEval_EvalFrame (function vectorcall) 2,497,980 4.0% 2,497,980 4.0% 0.0%
Calls via PyEval_EvalFrame (build class) 0 0.0% 0 0.0%
Calls via PyEval_EvalFrame (slot) 2,472,720 3.9% 2,472,720 3.9% 0.0%
Calls via PyEval_EvalFrame (function ex) 7,200,480 11.4% 7,200,480 11.4% 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 480 0.0% 480 0.0% 0.0%
Frames pushed 58,113,240 92.3% 58,113,240 92.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 dunder misses 18 120,026 666,711.1%
Method cache collisions 100 240,059 239,959.0%
Method cache misses 82 120,033 146,281.7%
Method cache hits 7,203,521 7,083,572 -1.7%
Method cache dunder hits 31,589,382 31,469,374 -0.4%
Immortal increfs 142,458,111 14.2% 142,818,080 14.2% 0.3%
Immortal decrefs 169,384,799 15.6% 169,744,766 15.6% 0.2%
Mortal decrefs 295,936,758 27.2% 296,056,683 27.2% 0.0%
Mortal increfs 402,547,340 40.0% 402,667,263 40.0% 0.0%
Interpreter mortal increfs 343,682,969 34.2% 343,682,996 34.2% 0.0%
Interpreter mortal decrefs 523,102,573 48.1% 523,102,598 48.1% 0.0%
Interpreter immortal decrefs 99,743,761 9.2% 99,743,763 9.2% 0.0%
Interpreter immortal increfs 116,571,061 11.6% 116,571,063 11.6% 0.0%
Allocations from freelist 29,193,140 36.4% 29,193,140 36.4% 0.0%
Frees to freelist 29,193,080 29,193,080 0.0%
Allocations 50,937,460 63.6% 50,937,460 63.6% 0.0%
Allocations to 512 bytes 50,888,240 63.5% 50,888,240 63.5% 0.0%
Allocations to 4 kbytes 48,260 0.1% 48,260 0.1% 0.0%
Allocations over 4 kbytes 960 0.0% 960 0.0% 0.0%
Frees 50,962,422 50,962,422 0.0%
Inline values 2,449,440 2,449,440 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
Uops executed

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

1,020,706,096 1,618.8% 1,020,706,007 1,618.8% -0.0%
Traces executed

The number of traces that were executed

63,053,189 63,053,190 0.0%
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,960 3,960 0.0%
Traces created

The number of traces that were successfully created.

260 6.6% 260 6.6% 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.

3,700 93.4% 3,700 93.4% 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.

3,700 93.4% 3,700 93.4% 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%
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.

260 260 0.0%
Optimizer successes

The number of traces that were successfully optimized.

260 100.0% 260 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 7.7% 20 7.7% 0.0%
<= 64 240 92.3% 240 92.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 260 100.0% 260 100.0% 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
_DEOPT 24,332 24,333 0.0%
_PY_FRAME_GENERAL 2,424,175 2,424,180 0.0%
_CALL_ISINSTANCE 2,424,679 2,424,676 -0.0%
_LOAD_CONST_INLINE 2,424,679 2,424,676 -0.0%
_LOAD_CONST_INLINE_WITH_NULL 2,449,159 2,449,156 -0.0%
_CHECK_FUNCTION 4,897,398 4,897,393 -0.0%
_GUARD_IS_TRUE_POP 4,921,398 4,921,393 -0.0%
_GUARD_IS_NOT_NONE_POP 2,424,179 2,424,181 0.0%
_ITER_NEXT_TUPLE 2,424,239 2,424,237 -0.0%
_STORE_FAST_3 2,424,679 2,424,677 -0.0%
_SWAP 2,448,239 2,448,237 -0.0%
_BINARY_SUBSCR 2,448,239 2,448,237 -0.0%
_BINARY_SUBSCR_CHECK_FUNC 2,448,239 2,448,237 -0.0%
_BINARY_SUBSCR_INIT_CALL 2,448,239 2,448,237 -0.0%
_CALL_BUILTIN_CLASS 2,448,239 2,448,237 -0.0%
_LOAD_CONST_INLINE_BORROW_WITH_NULL 2,448,239 2,448,237 -0.0%
_STORE_FAST_2 4,896,718 4,896,714 -0.0%
_CONTAINS_OP 2,496,719 2,496,717 -0.0%
_LOAD_FAST_2 9,769,197 9,769,191 -0.0%
_GET_ITER 7,272,238 7,272,234 -0.0%
_LOAD_FAST_3 4,825,119 4,825,117 -0.0%
_TO_BOOL_BOOL 7,248,439 7,248,436 -0.0%
_GUARD_NOT_EXHAUSTED_TUPLE 4,848,479 4,848,477 -0.0%
_ITER_CHECK_TUPLE 4,848,479 4,848,477 -0.0%
_CHECK_VALIDITY_AND_SET_IP 9,744,718 9,744,714 -0.0%
_FOR_ITER_TIER_TWO 7,296,479 7,296,477 -0.0%
_CHECK_VALIDITY 46,130,555 46,130,544 -0.0%
_POP_TOP 12,120,719 12,120,717 -0.0%
_CHECK_STACK_SPACE 19,368,935 19,368,932 -0.0%
_INIT_CALL_PY_EXACT_ARGS_1 19,368,935 19,368,932 -0.0%
_CHECK_FUNCTION_EXACT_ARGS 19,393,175 19,393,172 -0.0%
_SET_IP 72,844,384 72,844,373 -0.0%
_LOAD_FAST_1 31,610,067 31,610,063 -0.0%
_CHECK_PERIODIC 19,466,119 19,466,117 -0.0%
_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT 21,793,110 21,793,112 0.0%
_GUARD_KEYS_VERSION 21,793,110 21,793,112 0.0%
_LOAD_ATTR_METHOD_WITH_VALUES 21,793,110 21,793,112 0.0%
_CHECK_FUNCTION_VERSION 21,817,350 21,817,352 0.0%
_SAVE_RETURN_OFFSET 21,817,350 21,817,352 0.0%
_CHECK_MANAGED_OBJECT_HAS_VALUES 24,265,770 24,265,768 -0.0%
_LOAD_ATTR_INSTANCE_VALUE_0 24,265,770 24,265,768 -0.0%
_LOAD_FAST_0 33,962,726 33,962,724 -0.0%
_GUARD_TYPE_VERSION 58,155,111 58,155,113 0.0%
_MAKE_WARM 63,053,189 63,053,190 0.0%
_START_EXECUTOR 63,053,189 63,053,190 0.0%
_LOAD_FAST 40,868,640 40,868,640 0.0%
_EXIT_TRACE 38,787,508 38,787,508 0.0%
_LOAD_CONST_INLINE_BORROW 28,942,320 28,942,320 0.0%
_TIER2_RESUME_CHECK 24,290,880 24,290,880 0.0%
_PUSH_FRAME 24,265,589 24,265,589 0.0%
_DYNAMIC_EXIT 24,241,349 24,241,349 0.0%
_STORE_FAST 14,447,040 14,447,040 0.0%
_STORE_SUBSCR_DICT 14,398,560 14,398,560 0.0%
_GUARD_NOT_EXHAUSTED_LIST 12,120,900 12,120,900 0.0%
_ITER_CHECK_LIST 12,120,900 12,120,900 0.0%
_BINARY_OP_SUBTRACT_INT 9,599,040 9,599,040 0.0%
_ITER_NEXT_LIST 7,296,440 7,296,440 0.0%
_LOAD_ATTR_METHOD_NO_DICT 7,272,000 7,272,000 0.0%
_LOAD_FAST_5 7,247,760 7,247,760 0.0%
_LOAD_FAST_4 7,199,280 7,199,280 0.0%
_GUARD_IS_FALSE_POP 4,848,000 4,848,000 0.0%
_COMPARE_OP_INT 4,823,760 4,823,760 0.0%
_GUARD_NOS_INT 4,823,760 4,823,760 0.0%
_BINARY_SUBSCR_LIST_INT 2,399,760 2,399,760 0.0%
_UNPACK_SEQUENCE_TWO_TUPLE 2,399,760 2,399,760 0.0%
_BINARY_OP_ADD_INT 2,399,760 2,399,760 0.0%
_LOAD_FAST_7 2,399,760 2,399,760 0.0%
_STORE_SUBSCR 2,399,760 2,399,760 0.0%
_CONTAINS_OP_DICT 48,240 48,240 0.0%
_LOAD_DEREF 48,240 48,240 0.0%
_STORE_FAST_1 48,240 48,240 0.0%
_CALL_LEN 24,240 24,240 0.0%
_RESUME_CHECK 24,240 24,240 0.0%
_CALL_METHOD_DESCRIPTOR_FAST 24,240 24,240 0.0%
_CHECK_STACK_SPACE_OPERAND 24,240 24,240 0.0%
_INIT_CALL_PY_EXACT_ARGS_0 24,240 24,240 0.0%
_GUARD_NOT_EXHAUSTED_RANGE 20 20 0.0%
_ITER_CHECK_RANGE 20 20 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-26