Reverting the incremental GC in Python 3.14 and 3.15

TL;DR

Python 3.14 shipped with a new incremental garbage collector, but due to reports of memory pressure, the core developers decided to revert to the previous generational GC in both 3.14 and 3.15. The change is currently in progress, with plans for further evaluation in upcoming releases.

Python 3.14, released in April 2026, will revert its new incremental garbage collector to the previous generational GC in both 3.14 and 3.15 due to significant memory pressure reports from production environments.

The Python core development team introduced an incremental garbage collector (GC) in Python 3.14 as an experimental feature aimed at reducing pause times during memory cleanup. However, user reports from production deployments indicated increased memory usage and performance issues, prompting the team to revert to the older, well-understood generational GC used in Python 3.13. The revert is planned for the upcoming 3.14.5 patch release, with 3.15 still in alpha and open to further evaluation. Developers discussed the possibility of offering both GCs simultaneously, but concerns about maintenance complexity and stability have led to the decision to keep the old GC as the default, with the incremental version available as an experimental option in future releases.

Why It Matters

This development is significant because it highlights the challenges of integrating new memory management techniques into a mature language like Python. The decision to revert emphasizes the importance of stability and predictable performance, especially for production environments. It also indicates ongoing efforts to improve garbage collection, possibly through more thoroughly tested features in future releases, such as Python 3.16.

Python No Spill Clean and Fill Aquarium Maintenance System, Gravel Cleaner and Water Changer, 25 Foot

Python No Spill Clean and Fill Aquarium Maintenance System, Gravel Cleaner and Water Changer, 25 Foot

Easy To Use: Hassle free! No buckets, no siphons, no mess, no tank tear downs ever again! Every…

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Background

Python 3.14 introduced an experimental incremental garbage collector aimed at reducing pause times, a feature that was not part of the original design and did not go through the formal PEP process. The feature was rolled out shortly before the final release of Python 3.13, but user feedback from real-world testing revealed significant memory pressure and performance degradation. Discussions among core developers, including Antoine Pitrou and Serhiy Storchaka, centered on whether to maintain both GC implementations concurrently, but concerns about increased maintenance and complexity led to the decision to revert. The process reflects Python’s cautious approach to integrating experimental features, prioritizing stability and reliability.

“Given our experience with trying to introduce a new GC, we should ideally make it opt-in and keep the old as the default.”

— Antoine Pitrou

“Maintaining both GC versions would increase long-term maintenance overhead, and going back to the old one is the safe, conservative choice.”

— Neil Schemenauer

“Having two GCs in both 3.14 and 3.15 could make maintenance harder and riskier, especially with complex code.”

— Serhiy Storchaka

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 Remains Unclear

It remains unclear whether the incremental GC will be reintroduced in Python 3.16, and if so, under what specific conditions or configurations. The long-term impact on performance and memory management in diverse real-world workloads is still being evaluated, with ongoing testing and user feedback awaited to inform future decisions.

Python Performance Engineering: Optimization Techniques Explained

Python Performance Engineering: Optimization Techniques Explained

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What’s Next

The Python core team plans to finalize the revert in the upcoming 3.14.5 patch release, scheduled for early June 2026. Further testing, including real-world workload reports, will guide whether the incremental GC might be reintroduced in Python 3.16, potentially as an opt-in feature after thorough evaluation. The team will also consider developing more realistic benchmarks to assess the performance impact of garbage collection strategies.

Writing Production-Quality Python: Standards and Best Practices

Writing Production-Quality Python: Standards and Best Practices

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Key Questions

Why was the incremental garbage collector introduced in Python 3.14?

The incremental GC was introduced as an experimental feature to reduce pause times during memory cleanup, aiming to improve performance for applications with large memory footprints.

What are the main issues with the incremental GC reported by users?

Users reported increased memory usage, performance degradation, and instability in production environments, especially under workloads with heavy cyclic garbage creation.

Will the incremental GC be available in future Python versions?

It remains uncertain. The core team is considering further evaluation and testing before deciding whether to reintroduce it in Python 3.16, possibly as an opt-in feature.

How will this affect Python developers and users?

Developers relying on the new GC for performance improvements may need to revert to the older generational GC or test experimental options. The overall stability and predictability of Python’s memory management are prioritized in this decision.

You May Also Like

Microscale Thermite Reaction

A recent experiment successfully demonstrated a microscale thermite reaction, raising questions about its potential applications and safety implications.

Japan space startups to train engineers from India, Philippines, Indonesia

Japan’s startups will train space industry professionals from India, Philippines, and Indonesia through a new JICA program, enhancing regional satellite capabilities.

NASA is opening up bids for who will run the Jet Propulsion Laboratory

NASA is soliciting bids from interested parties to manage the Jet Propulsion Laboratory after Caltech’s contract ends in 2028, opening potential for new operators.

The Future of Blockchain: Beyond Cryptocurrency in 2025

Fascinating advancements in blockchain by 2025 will transform digital trust and transparency—discover how these changes may impact your world next.