Title: Remove lazy dictionary tracking · Issue #127010 · python/cpython · GitHub
Open Graph Title: Remove lazy dictionary tracking · Issue #127010 · python/cpython
X Title: Remove lazy dictionary tracking · Issue #127010 · python/cpython
Description: Feature or enhancement Proposal: In order to reduce the overhead of cycle GC detection for objects that cannot be part of cycles, we lazily untrack tuples and dictionary that only refer to objects that cannot be part of a cycle. This is ...
Open Graph Description: Feature or enhancement Proposal: In order to reduce the overhead of cycle GC detection for objects that cannot be part of cycles, we lazily untrack tuples and dictionary that only refer to objects ...
X Description: Feature or enhancement Proposal: In order to reduce the overhead of cycle GC detection for objects that cannot be part of cycles, we lazily untrack tuples and dictionary that only refer to objects ...
Opengraph URL: https://github.com/python/cpython/issues/127010
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Remove lazy dictionary tracking","articleBody":"# Feature or enhancement\n\n### Proposal:\n\nIn order to reduce the overhead of cycle GC detection for objects that cannot be part of cycles, we lazily untrack tuples and dictionary that only refer to objects that cannot be part of a cycle.\n\nThis is fine for tuples, but dictionaries are mutable, so we need to check every time a dictionary is modified whether it needs to be tracked.\n\nSince most objects no longer have a `__dict__` dictionary, the complexity and overhead of this lazy tracking is not worth the small benefit in the cycle GC.\n\n\nThis was originally implemented in https://github.com/python/cpython/pull/126502, but is largely orthogonal to the main purpose of that PR, so should be implemented separately.\n\n\n### Has this already been discussed elsewhere?\n\nThis is a minor feature, which does not need previous discussion elsewhere\n\n### Links to previous discussion of this feature:\n\n_No response_\n\n\u003c!-- gh-linked-prs --\u003e\n### Linked PRs\n* gh-127027\n\u003c!-- /gh-linked-prs --\u003e\n","author":{"url":"https://github.com/markshannon","@type":"Person","name":"markshannon"},"datePublished":"2024-11-19T12:21:31.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/127010/cpython/issues/127010"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:85d3ca85-c28b-0fc9-9db3-67947d3a279c |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D554:1A425C:12CD749:18B9803:696B77B4 |
| html-safe-nonce | 4d0bb8a940ccea4a5be767af712864539d61250fcf1fdd46c32e010e8744fed9 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJENTU0OjFBNDI1QzoxMkNENzQ5OjE4Qjk4MDM6Njk2Qjc3QjQiLCJ2aXNpdG9yX2lkIjoiMjQxNjc2MjQyMjU5NzIyMDI3NyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 7c706d65883c7b419fef38e4b7753451793c2b06247bc186f0b7adafedb4372c |
| hovercard-subject-tag | issue:2671998928 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/cpython/127010/issue_layout |
| twitter:image | https://opengraph.githubassets.com/8b70f921ac9138aeb59d52e3d289046662e42578278bb524ab2ec9b8d121494f/python/cpython/issues/127010 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/8b70f921ac9138aeb59d52e3d289046662e42578278bb524ab2ec9b8d121494f/python/cpython/issues/127010 |
| og:image:alt | Feature or enhancement Proposal: In order to reduce the overhead of cycle GC detection for objects that cannot be part of cycles, we lazily untrack tuples and dictionary that only refer to objects ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | markshannon |
| hostname | github.com |
| expected-hostname | github.com |
| None | 5f99f7c1d70f01da5b93e5ca90303359738944d8ab470e396496262c66e60b8d |
| turbo-cache-control | no-preview |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 82560a55c6b2054555076f46e683151ee28a19bc |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width