-
-
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-126491: GC: Mark objects reachable from roots before doing cycle collection #127110
Conversation
🤖 New build scheduled with the buildbot fleet by @markshannon for commit 698abb3 🤖 If you want to schedule another build, you need to add the 🔨 test-with-buildbots label again. |
!buildbot Android |
🤖 New build scheduled with the buildbot fleet by @markshannon for commit 6d8a0d4 🤖 The command will test the builders whose names match following regular expression: The builders matched are:
|
!buildbot Android |
🤖 New build scheduled with the buildbot fleet by @markshannon for commit d9632c6 🤖 The command will test the builders whose names match following regular expression: The builders matched are:
|
!buildbot Android |
🤖 New build scheduled with the buildbot fleet by @markshannon for commit 0702959 🤖 The command will test the builders whose names match following regular expression: The builders matched are:
|
!buildbot iOS |
🤖 New build scheduled with the buildbot fleet by @markshannon for commit 0702959 🤖 The command will test the builders whose names match following regular expression: The builders matched are:
|
FTR: |
!buildbot Android |
🤖 New build scheduled with the buildbot fleet by @markshannon for commit eaea41e 🤖 The command will test the builders whose names match following regular expression: The builders matched are:
|
!buildbot iOS |
🤖 New build scheduled with the buildbot fleet by @markshannon for commit eaea41e 🤖 The command will test the builders whose names match following regular expression: The builders matched are:
|
!buildbot iOS |
🤖 New build scheduled with the buildbot fleet by @markshannon for commit 79ab26c 🤖 The command will test the builders whose names match following regular expression: The builders matched are:
|
!buildbot Android |
🤖 New build scheduled with the buildbot fleet by @markshannon for commit 79ab26c 🤖 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 79ab26c 🤖 If you want to schedule another build, you need to add the 🔨 test-with-refleak-buildbots label again. |
Performance shows a ~3% speedup. The results appear noisier than usual, so might be worth repeating, but they are roughly inline with results for earlier versions of this PR. |
@@ -329,6 +334,7 @@ struct _gc_runtime_state { | |||
Py_ssize_t work_to_do; | |||
/* Which of the old spaces is the visited space */ | |||
int visited_space; | |||
int phase; |
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.
Maybe this can be rolled into the collecting
field (like 0 for not collecting, 1 for MARK, 2 for COLLECT)?
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.
Perhaps, but not very cleanly.
The phase depends on where we are in a full heap scavenge. The collecting flag will flip many times during a scavenge, for incremental collections.
All the buildbots that failed were failing on main due to unrelated issues (the Windows 10 bot may have been fixed since) |
… doing cycle collection (pythonGH-127110)" This reverts commit a8dd821.
…e doing cycle collection (pythonGH-127110)" This reverts commit 2923163.
… doing cycle collection (pythonGH-127110)" This reverts commit a8dd821.
…ycle collection (pythonGH-127110) * Mark almost all reachable objects before doing collection phase * Add stats for objects marked * Visit new frames before each increment * Update docs * Clearer calculation of work to do.
…ycle collection (pythonGH-127110) * Mark almost all reachable objects before doing collection phase * Add stats for objects marked * Visit new frames before each increment * Update docs * Clearer calculation of work to do.
This is an updated version of #126502
It differs as follows: