GH-108362: Incremental GC implementation#116206
Conversation
|
The build failures appear to be caused by #114751, so I think this is ready for review. I believe the reason that the earlier version of this PR needed reverting was that it relied on the young gen being empty after a young collection. However if a finalizer creates new objects, then that assumption is false. This version merges the young gen and increment before collection, so we don't care if the young gen isn't empty afterwards. |
|
🤖 New build scheduled with the buildbot fleet by @markshannon for commit 912ebc1 🤖 If you want to schedule another build, you need to add the 🔨 test-with-buildbots label again. |
|
!buildbot bigmem |
|
🤖 New build scheduled with the buildbot fleet by @markshannon for commit 912ebc1 🤖 The command will test the builders whose names match following regular expression: The builders matched are:
|
|
🤖 New build scheduled with the buildbot fleet by @markshannon for commit 3c1ef42 🤖 If you want to schedule another build, you need to add the 🔨 test-with-buildbots label again. |
|
!buildbot bigmem |
|
🤖 New build scheduled with the buildbot fleet by @markshannon for commit 3c1ef42 🤖 The command will test the builders whose names match following regular expression: The builders matched are:
|
|
!buildbot bigmem |
|
🤖 New build scheduled with the buildbot fleet by @markshannon for commit f4f04d6 🤖 The command will test the builders whose names match following regular expression: The builders matched are:
|
|
Note on the test failures:
|
|
This may have introduced a performance regression. See gh-117108. |
Second half of the revert. This reverts commit 1530932.
In pythonGH-116206, the comment about moving reachable objects to next generation got moved from its original place to a place where there is no code below it. This PR puts it back where the actual movement of rechable objects happen to the next generation.
This reverts commit 1530932.
This reverts commit 1530932.
This reverts commit 1530932.
In GH-116206, the comment about moving reachable objects to next generation got moved from its original place to a place where there is no code below it. Put the comment back to where the actual movement of reachable objects happens.
In pythonGH-116206, the comment about moving reachable objects to next generation got moved from its original place to a place where there is no code below it. Put the comment back to where the actual movement of reachable objects happens.
Implements incremental cyclic GC.
Instead of traversing one generation on each collection, we traverse the young generation and the oldest part of the old generation. By traversing the old generation a chunk at a time, we keep pause times down a lot.
See faster-cpython/ideas#613 for the idea and algorithm.
📚 Documentation preview 📚: https://cpython-previews--116206.org.readthedocs.build/