-
-
Notifications
You must be signed in to change notification settings - Fork 31.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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:
|
@DinoV I've fixed that and added a test based on your example. |
!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:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM now!
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.
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/