/opt/alt/python312/include/python3.12
#ifndef Py_PYSTATS_H #define Py_PYSTATS_H #ifdef __cplusplus extern "C" { #endif #ifdef Py_STATS #define SPECIALIZATION_FAILURE_KINDS 36 /* Stats for determining who is calling PyEval_EvalFrame */ #define EVAL_CALL_TOTAL 0 #define EVAL_CALL_VECTOR 1 #define EVAL_CALL_GENERATOR 2 #define EVAL_CALL_LEGACY 3 #define EVAL_CALL_FUNCTION_VECTORCALL 4 #define EVAL_CALL_BUILD_CLASS 5 #define EVAL_CALL_SLOT 6 #define EVAL_CALL_FUNCTION_EX 7 #define EVAL_CALL_API 8 #define EVAL_CALL_METHOD 9 #define EVAL_CALL_KINDS 10 typedef struct _specialization_stats { uint64_t success; uint64_t failure; uint64_t hit; uint64_t deferred; uint64_t miss; uint64_t deopt; uint64_t failure_kinds[SPECIALIZATION_FAILURE_KINDS]; } SpecializationStats; typedef struct _opcode_stats { SpecializationStats specialization; uint64_t execution_count; uint64_t pair_count[256]; } OpcodeStats; typedef struct _call_stats { uint64_t inlined_py_calls; uint64_t pyeval_calls; uint64_t frames_pushed; uint64_t frame_objects_created; uint64_t eval_calls[EVAL_CALL_KINDS]; } CallStats; typedef struct _object_stats { uint64_t increfs; uint64_t decrefs; uint64_t interpreter_increfs; uint64_t interpreter_decrefs; uint64_t allocations; uint64_t allocations512; uint64_t allocations4k; uint64_t allocations_big; uint64_t frees; uint64_t to_freelist; uint64_t from_freelist; uint64_t new_values; uint64_t dict_materialized_on_request; uint64_t dict_materialized_new_key; uint64_t dict_materialized_too_big; uint64_t dict_materialized_str_subclass; uint64_t type_cache_hits; uint64_t type_cache_misses; uint64_t type_cache_dunder_hits; uint64_t type_cache_dunder_misses; uint64_t type_cache_collisions; } ObjectStats; typedef struct _stats { OpcodeStats opcode_stats[256]; CallStats call_stats; ObjectStats object_stats; } PyStats; PyAPI_DATA(PyStats) _py_stats_struct; PyAPI_DATA(PyStats *) _py_stats; extern void _Py_StatsClear(void); extern void _Py_PrintSpecializationStats(int to_file); #ifdef _PY_INTERPRETER #define _Py_INCREF_STAT_INC() do { if (_py_stats) _py_stats->object_stats.interpreter_increfs++; } while (0) #define _Py_DECREF_STAT_INC() do { if (_py_stats) _py_stats->object_stats.interpreter_decrefs++; } while (0) #else #define _Py_INCREF_STAT_INC() do { if (_py_stats) _py_stats->object_stats.increfs++; } while (0) #define _Py_DECREF_STAT_INC() do { if (_py_stats) _py_stats->object_stats.decrefs++; } while (0) #endif #else #define _Py_INCREF_STAT_INC() ((void)0) #define _Py_DECREF_STAT_INC() ((void)0) #endif // !Py_STATS #ifdef __cplusplus } #endif #endif /* !Py_PYSTATs_H */
.
Edit
..
Edit
Python.h
Edit
abstract.h
Edit
bltinmodule.h
Edit
boolobject.h
Edit
bytearrayobject.h
Edit
bytesobject.h
Edit
ceval.h
Edit
codecs.h
Edit
compile.h
Edit
complexobject.h
Edit
cpython
Edit
datetime.h
Edit
descrobject.h
Edit
dictobject.h
Edit
dynamic_annotations.h
Edit
enumobject.h
Edit
errcode.h
Edit
exports.h
Edit
fileobject.h
Edit
fileutils.h
Edit
floatobject.h
Edit
frameobject.h
Edit
genericaliasobject.h
Edit
import.h
Edit
internal
Edit
interpreteridobject.h
Edit
intrcheck.h
Edit
iterobject.h
Edit
listobject.h
Edit
longobject.h
Edit
marshal.h
Edit
memoryobject.h
Edit
methodobject.h
Edit
modsupport.h
Edit
moduleobject.h
Edit
object.h
Edit
objimpl.h
Edit
opcode.h
Edit
osdefs.h
Edit
osmodule.h
Edit
patchlevel.h
Edit
py_curses.h
Edit
pybuffer.h
Edit
pycapsule.h
Edit
pyconfig-64.h
Edit
pyconfig.h
Edit
pydtrace.h
Edit
pyerrors.h
Edit
pyexpat.h
Edit
pyframe.h
Edit
pyhash.h
Edit
pylifecycle.h
Edit
pymacconfig.h
Edit
pymacro.h
Edit
pymath.h
Edit
pymem.h
Edit
pyport.h
Edit
pystate.h
Edit
pystats.h
Edit
pystrcmp.h
Edit
pystrtod.h
Edit
pythonrun.h
Edit
pythread.h
Edit
pytypedefs.h
Edit
rangeobject.h
Edit
setobject.h
Edit
sliceobject.h
Edit
structmember.h
Edit
structseq.h
Edit
sysmodule.h
Edit
traceback.h
Edit
tracemalloc.h
Edit
tupleobject.h
Edit
typeslots.h
Edit
unicodeobject.h
Edit
warnings.h
Edit
weakrefobject.h
Edit