TL;DR

Python 3.14 and 3.15 have reverted the new incremental garbage collector after reports of memory pressure. The core team decided to restore the previous generational GC for stability, with plans for potential reintroduction in future releases.

Python has reverted the incremental garbage collector introduced in Python 3.14 and 3.15 due to widespread reports of memory pressure in production systems. The core team decided to restore the previous generational GC from Python 3.13, citing stability concerns and the need for more thorough evaluation before reintroduction.

The incremental GC was introduced in Python 3.14 but was rolled back in both 3.14 and 3.15 after developers observed significant memory usage issues during real-world testing. The decision was made following discussions within the core development team and the Steering Council, emphasizing caution and stability over experimental features.

According to the Python steering council, the incremental GC did not go through the formal PEP process, and its implementation was complex, raising concerns about maintenance and potential for bugs. The rollback aligns with a conservative approach, prioritizing reliability for production environments.

Why It Matters

This development is significant because it highlights the challenges of integrating new memory management techniques into a mature language runtime like CPython. The decision to revert underscores the importance of stability in widely used programming language components, especially in production settings where memory issues can cause system failures or degraded performance.

The move also indicates that future attempts to introduce experimental GCs will require more rigorous evaluation, including formal PEP approval and extensive testing, before being deployed in stable releases.

Python Unleashed: Advanced Concurrency, Metaprogramming, Memory Management, and High-Performance Code

Python Unleashed: Advanced Concurrency, Metaprogramming, Memory Management, and High-Performance Code

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Background

Earlier, Python 3.14 introduced an incremental garbage collector aimed at reducing pause times during memory cleanup. However, reports from users indicated that the new GC caused increased memory pressure, especially under workloads with cyclic references. The issues prompted discussions within the Python community about the complexity and risks associated with the incremental GC, leading to the decision to revert in the upcoming 3.14.5 patch and in 3.15.

Developers had experimented with options to include both GCs simultaneously or toggle between them at startup, but concerns about increased maintenance and code complexity prevailed. The core team emphasized that the old generational GC remains the default, with the incremental version available as an experimental feature in future releases.

“The incremental GC did not go through the formal PEP process and introduced complexity that compromised stability. Reverting ensures a reliable experience for users.”

— Python Steering Council

“Maintaining both GCs would increase long-term overhead, and given the current issues, the safe choice is to revert to the known, stable generational GC.”

— Neil Schemenauer

Amazon

Python garbage collection monitoring

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What Remains Unclear

It remains unclear when or if the incremental GC will be reintroduced in future Python versions. There is ongoing discussion about making it an opt-in feature, but no formal plan has been announced. The community is awaiting more extensive testing and evaluation, possibly through a new PEP process.

High Performance Python: Practical Performant Programming for Humans

High Performance Python: Practical Performant Programming for Humans

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What’s Next

The core team plans to monitor feedback from real-world testing of the reverted GC in upcoming patch releases, such as Python 3.14.5. They are also considering a more thorough evaluation process for future reintroduction, including formal PEP approval. Developers and users are encouraged to provide performance and stability reports to guide future decisions.

Debugging Playbook: System Testing, Error Localization, And Vulnerability Remediation

Debugging Playbook: System Testing, Error Localization, And Vulnerability Remediation

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Key Questions

Why was the incremental GC introduced in Python 3.14?

The incremental GC was introduced to reduce pause times during garbage collection, aiming to improve performance in applications sensitive to latency.

What specific issues led to the rollback?

Users reported significant memory pressure and increased memory usage under workloads with cyclic references, which affected system stability and performance.

Will the incremental GC be available in future Python versions?

It is not yet confirmed. The community is considering making it an opt-in feature in future releases, pending further testing and evaluation.

How will this decision affect Python developers?

Developers will continue to use the stable generational GC by default, but experimental options may be available for testing the incremental GC once it is re-evaluated.

You May Also Like

Running local models on an M4 with 24GB memory

Exploring how to run local AI models on a Mac M4 with 24GB memory, including setup, performance, and limitations based on recent experiments.

If AI writes your code, why use Python?

As AI increasingly writes code, experts question the continued reliance on Python for development tasks. This analysis explores the implications.

How Multi-Step Forms Increase Completion Rates by 3x

Discover how breaking forms into manageable steps can triple your completion rates. Practical tips, real data, and design hacks included.

Anthropic now has more business customers than OpenAI, according to Ramp data

According to Ramp data, Anthropic now has more business clients than OpenAI for the first time, signaling shifts in enterprise AI adoption.