Python 3.14's incremental garbage collector, introduced as part of the Faster CPython project, is being reverted due to significant memory pressure issues observed in real-world applications. The change replaced the classic three-generation GC with a two-generation incremental model intended to reduce GC pause times by scanning fewer objects less often. However, this caused objects to live much longer before collection, leading to memory accumulation that outpaced cleanup. The change was originally attempted in Python 3.13, reverted there due to performance regressions, then landed in 3.14 — only to be reverted again after a minimal reproduction using HTTPX revealed unbounded memory growth. Notably, the change bypassed the PEP process, which likely contributed to insufficient scrutiny. A future attempt may be made for Python 3.16 via a proper PEP.

12m watch time

Sort: