-
-
Notifications
You must be signed in to change notification settings - Fork 30.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
[3.13] GH-124567: Revert the Incremental GC in 3.13 #124770
Conversation
) (python#123395)" This reverts commit aca6511.
…H-123261) (python#123268)" This reverts commit b1372e2.
…on#118313)" This reverts commit 2ba1aed.
This reverts commit ddf814d.
… young objects (python#117213)" This reverts commit 8bef34f.
… 1% of the total heap size. (pythonGH-117120)" This reverts commit e28477f.
This reverts commit 1530932.
This is a fairly simple revert, we'll have to address the what's new docs and news entries but I want to get this out there for review and testing in the meantime. |
Happy to report that this cuts around 50% off the time it takes to do an HTML build of the CPython docs locally with Sphinx (build options were |
A little benchmarking from my desktop PC. "Sphinx" is build/html for typing.rst. The debug column is for the Based on this limited testing, it's looking pretty good.
|
We can also see that the |
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.
I believe the ABI changes are acceptable (the size of a private struct within another private struct changes, so later fields in the outer struct move around -- but as far as I can tell those structs are not exposed to users). The hypothesis failure seems unrelated (but possibly worth investigating). |
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.
One (unimportant) whitespace regression, otherwise this looks correct to me.
I checked the ABI changes and they are safe as this just complains about the size change of cpython/Include/internal/pycore_runtime.h Line 193 in fe58596
This may affect still some profilers that are vendoring headers like Austin (https://github.com/P403n1x87/austin/blob/4aead107f10e55a834b1f64a46ebc97fdb70f238/src/python/gc.h) but that is impossible to avoid (also here we were lucky because they haven't released wheels for 3.13 yet!). |
AA-Turner@d7acbbd resolves What's New by just removing all references to the incremental GC. I'm not sure there's much value discussing that the incremental GC was in pre-releases and was then reverted in What's New as it will serve to confuse the majority of readers, the detail should be in the NEWS entry. A |
FWIW, a negative performance impact of the revert to some microbenchmarks: #124567 (comment) |
) Revert the incremental GC in 3.13, since it's not clear that without further turning, the benefits outweigh the costs. Co-authored-by: Adam Turner <[email protected]>
Revert the incremental GC in 3.14, since it's not clear that without further turning, the benefits outweigh the costs. Co-authored-by: Adam Turner <[email protected]> Co-authored-by: Hugo van Kemenade <[email protected]>
Revert the incremental GC in 3.14, since it's not clear that without further turning, the benefits outweigh the costs. Co-authored-by: Adam Turner <[email protected]> Co-authored-by: Hugo van Kemenade <[email protected]>
Revert the Incremental GC in 3.13.
This reverts PRs #116206 (commit 1530932), #117120 (e28477f), #117213 (8bef34f), #117422 (ddf814d), #118313 (2ba1aed), #123268 (b1372e2) and #123395 (aca6511). Does not revert the raising of the first generation threshold from 700 to 2000, nor changes to C APIs (even private ones).
📚 Documentation preview 📚: https://cpython-previews--124770.org.readthedocs.build/