Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 34k
GH-108362: Incremental GC implementation#116206
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
Uh oh!
There was an error while loading. Please reload this page.
Conversation
markshannon commented Mar 1, 2024 • edited by github-actions bot
Loading Uh oh!
There was an error while loading. Please reload this page.
edited by github-actions bot
Uh oh!
There was an error while loading. Please reload this page.
markshannon commented Mar 4, 2024 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
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. |
bedevere-bot commented Mar 5, 2024
🤖 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. |
markshannon commented Mar 6, 2024
!buildbot bigmem |
bedevere-bot commented Mar 6, 2024
🤖 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:
|
bedevere-bot commented Mar 7, 2024
🤖 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. |
markshannon commented Mar 7, 2024
!buildbot bigmem |
bedevere-bot commented Mar 7, 2024
🤖 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:
|
markshannon commented Mar 19, 2024
!buildbot bigmem |
bedevere-bot commented Mar 19, 2024
🤖 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:
|
DinoV left a comment
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!
markshannon commented Mar 20, 2024
Note on the test failures:
|
ericsnowcurrently commented Mar 22, 2024
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/