-
-
Notifications
You must be signed in to change notification settings - Fork 34.5k
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
Merged
Merged
Changes from 14 commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
4cde149
Incremental GC
markshannon 41f7a12
Merge branch 'main' into incremental-gc-3
markshannon 5361bd7
Fix compiler warning
markshannon 0951d03
Fix gdb support
markshannon 03ea080
Make cold exits immortal safely
markshannon 49b47fa
Merge young gen and increment before scanning.
markshannon 7febe8e
Fix docs formatting
markshannon 912ebc1
Merge branch 'main' into incremental-gc-3
markshannon 3c1ef42
Revert check for immortality.
markshannon 7a41258
Merge branch 'main' into incremental-gc-3
markshannon b7e0a26
Fix increment size calculation, and make sure progress if always made.
markshannon 6d4e9f8
Fix up docs and comments
markshannon bc30d34
Add incemental GC stress test
markshannon 8caba5d
Turn off test for free-threading
markshannon c87fcaa
Merge branch 'main' into incremental-gc-3
markshannon f4f04d6
Remove redundant import
markshannon File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
12 changes: 12 additions & 0 deletions
12
Misc/NEWS.d/next/Core and Builtins/2024-01-07-04-22-51.gh-issue-108362.oB9Gcf.rst
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| Implement an incremental cyclic garbage collector. By collecting the old | ||
| generation in increments, there is no need for a full heap scan. This can | ||
| hugely reduce maximum pause time for programs with large heaps. | ||
|
|
||
| Reduce the number of generations from three to two. The old generation is | ||
| split into two spaces, "visited" and "pending". | ||
|
|
||
| Collection happens in two steps:: | ||
| * An increment is formed from the young generation and a small part of the pending space. | ||
| * This increment is scanned and the survivors moved to the end of the visited space. | ||
|
|
||
| When the collecting space becomes empty, the two spaces are swapped. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.