PHP 8.2.30
Preview: pystats.h Size: 2.68 KB
//opt/alt/python312/include/python3.12/pystats.h


#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 */

Directory Contents

Dirs: 2 × Files: 75

Name Size Perms Modified Actions
cpython DIR
- drwxr-xr-x 2026-02-10 08:09:12
Edit Download
internal DIR
- drwxr-xr-x 2026-02-10 08:09:12
Edit Download
31.85 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
264 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.11 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.43 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
2.56 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
6.12 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
6.91 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
448 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
728 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
9.54 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
3.01 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
3.77 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
21.94 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
253 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.74 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.24 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.61 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
507 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.50 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
336 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
334 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
2.96 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
333 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
772 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
597 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.74 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
3.65 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
827 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.06 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
4.96 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
6.36 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
3.48 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
36.28 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
9.02 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
12.51 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
737 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
291 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.27 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
5.16 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.69 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
54.51 KB lrw-r--r-- 2026-01-08 18:15:28
Edit Download
162 B lrw-r--r-- 2026-01-08 18:20:51
Edit Download
2.35 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
12.71 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
2.51 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
551 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
4.06 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
2.20 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
2.74 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
6.50 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.65 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
3.82 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
24.99 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
4.53 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
2.68 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
436 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.52 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
2.79 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.28 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
4.76 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
851 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
2.42 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
630 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.52 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
2.46 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.61 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.37 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.69 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
585 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
2.23 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.58 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
2.29 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
34.34 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.10 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.21 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).