Pablo Galindo Salgado
21fb9dc71d
gh-146527: Heap-allocate gc_stats to avoid bloating PyInterpreterState ( #148057 )
...
The gc_stats struct contains ring buffers of gc_generation_stats
entries (11 young + 3×2 old on default builds). Embedding it inline
in _gc_runtime_state, which is itself inline in PyInterpreterState,
pushed fields like _gil.locked and threads.head to offsets beyond
what out-of-process profilers and debuggers can reasonably read in
a single buffer (e.g. offset 9384 for _gil.locked vs an 8 KiB read
buffer).
Heap-allocate generation_stats via PyMem_RawCalloc in _PyGC_Init and
free it in _PyGC_Fini. This shrinks PyInterpreterState by ~1.6 KiB
and keeps the GIL, thread-list, and other frequently-inspected fields
at stable, low offsets.
2026-04-04 18:42:30 +01:00
..
2026-02-12 00:15:33 +00:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2025-07-22 16:47:24 +01:00
2026-03-30 22:04:04 +02:00
2026-01-30 20:37:52 -08:00
2026-03-09 10:37:23 -07:00
2026-01-30 20:37:52 -08:00
2026-03-31 10:59:17 +03:00
2025-03-17 09:19:04 +00:00
2026-04-04 17:23:03 +08:00
2026-03-02 11:47:32 +01:00
2026-04-03 23:23:04 +08:00
2026-04-04 09:12:13 +05:30
2026-02-12 00:15:33 +00:00
2025-10-03 13:33:49 +02:00
2026-03-30 22:04:04 +02:00
2026-03-30 22:04:04 +02:00
2026-01-06 12:24:02 +05:30
2026-02-06 15:14:08 +00:00
2026-04-01 18:34:55 +02:00
2025-06-13 16:45:21 -06:00
2026-03-10 10:46:13 +01:00
2026-03-11 12:39:24 +01:00
2026-04-01 16:14:59 +02:00
2025-05-08 15:01:25 +00:00
2025-07-22 15:05:26 +02:00
2025-09-17 15:33:55 +01:00
2026-02-26 06:21:05 +08:00
2026-03-27 11:20:19 +00:00
2026-04-04 17:23:03 +08:00
2025-11-18 17:34:58 +01:00
2026-03-30 12:48:18 +00:00
2026-02-06 09:43:36 -05:00
2026-03-09 18:18:14 +00:00
2025-08-06 14:33:28 +02:00
2026-04-04 18:42:30 +01:00
2026-04-04 18:42:30 +01:00
2026-04-04 17:23:03 +08:00
2026-03-31 10:59:17 +03:00
2025-11-10 15:50:51 +01:00
2025-05-05 15:09:19 +00:00
2025-06-16 23:32:52 +09:00
2026-03-11 21:08:18 +00:00
2026-03-27 14:37:11 -07:00
2025-11-26 14:12:49 +01:00
2025-05-25 20:19:29 +00:00
2026-03-25 19:09:56 +00:00
2026-01-16 09:11:58 +00:00
2026-03-17 00:18:59 +08:00
2026-03-31 10:59:17 +03:00
2025-10-11 22:58:14 +02:00
2026-04-02 16:53:09 +02:00
2025-08-13 14:15:12 -04:00
2026-03-23 16:55:06 -04:00
2026-03-24 17:47:55 +00:00
2026-04-02 13:54:21 +02:00
2026-03-21 10:48:13 +00:00
2026-04-05 00:40:12 +09:00
2026-04-05 00:40:12 +09:00
2026-04-05 00:40:12 +09:00
2026-04-05 00:40:12 +09:00
2026-04-04 11:56:40 +00:00
2025-09-16 09:21:58 +01:00
2025-05-09 11:39:23 +00:00
2026-01-28 13:30:17 +00:00
2026-02-14 11:41:28 +00:00
2026-02-22 10:01:27 +02:00
2026-02-21 12:42:13 +01:00
2026-03-23 23:00:26 +00:00
2026-04-04 11:56:40 +00:00
2026-04-04 11:56:40 +00:00
2026-04-01 08:33:30 +00:00
2025-11-12 13:44:49 +01:00
2026-03-24 17:47:55 +00:00
2026-03-24 17:47:55 +00:00
2026-03-31 10:59:17 +03:00
2026-03-10 09:45:07 +01:00
2026-02-17 11:12:25 -05:00
2026-03-21 10:48:13 +00:00
2026-02-26 21:14:34 +00:00
2025-12-06 22:37:34 +00:00
2026-03-21 10:48:13 +00:00
2025-11-05 11:12:56 -08:00
2025-10-31 16:13:43 +02:00
2026-01-06 11:36:00 +02:00
2025-03-17 09:19:04 +00:00
2026-03-09 12:56:41 -07:00
2026-03-23 21:57:23 +00:00
2025-05-30 10:15:47 +00:00
2025-08-20 17:10:44 +00:00
2025-11-06 16:10:39 +01:00
2026-03-13 13:15:26 +01:00
2026-02-18 15:57:48 +00:00
2025-01-17 16:42:27 +01:00
2025-04-29 12:56:20 +02:00