René's URL Explorer Experiment


Title: PEP 683 – Immortal Objects, Using a Fixed Refcount | peps.python.org

Open Graph Title: PEP 683 – Immortal Objects, Using a Fixed Refcount | peps.python.org

Description: Currently the CPython runtime maintains a small amount of mutable state in the allocated memory of each object. Because of this, otherwise immutable objects are actually mutable. This can have a large negative impact on CPU and memory performance, esp...

Open Graph Description: Currently the CPython runtime maintains a small amount of mutable state in the allocated memory of each object. Because of this, otherwise immutable objects are actually mutable. This can have a large negative impact on CPU and memory performance, esp...

Opengraph URL: https://peps.python.org/pep-0683/

direct link

Domain: peps.python.org

color-schemelight dark
og:typewebsite
og:site_namePython Enhancement Proposals (PEPs)
og:imagehttps://peps.python.org/_static/og-image.png
og:image:altPython PEPs
og:image:width200
og:image:height200
theme-color#3776ab

Links:

Pythonhttps://www.python.org/
PEP Indexhttps://peps.python.org/
Discourse threadhttps://discuss.python.org/t/18183
16-Feb-2022https://mail.python.org/archives/list/python-dev@python.org/thread/TPLEYDCXFQ4AMTW6F6OQFINSIFYBRFCR/
19-Feb-2022https://mail.python.org/archives/list/python-dev@python.org/thread/KDAR6CCMPOX36GQJUDWHQBKRD5USNV3B/
28-Feb-2022https://mail.python.org/archives/list/python-dev@python.org/thread/MI22URMVKC63OFMZTALHFZKAKVGAT4UF/
12-Aug-2022https://discuss.python.org/t/18183
Discourse messagehttps://discuss.python.org/t/18183/26
PEP Acceptance Conditionshttps://peps.python.org/0683#pep-acceptance-conditions
Abstracthttps://peps.python.org/0683#abstract
Scopehttps://peps.python.org/0683#scope
Implementation Summaryhttps://peps.python.org/0683#implementation-summary
Motivationhttps://peps.python.org/0683#motivation
Reducing CPU Cache Invalidationhttps://peps.python.org/0683#reducing-cpu-cache-invalidation
Avoiding Data Raceshttps://peps.python.org/0683#avoiding-data-races
Avoiding Copy-on-Writehttps://peps.python.org/0683#avoiding-copy-on-write
Rationalehttps://peps.python.org/0683#rationale
Impacthttps://peps.python.org/0683#impact
Benefitshttps://peps.python.org/0683#benefits
Performancehttps://peps.python.org/0683#performance
Backward Compatibilityhttps://peps.python.org/0683#backward-compatibility
Accidental Immortalityhttps://peps.python.org/0683#accidental-immortality
Stable ABIhttps://peps.python.org/0683#stable-abi
Accidental De-Immortalizinghttps://peps.python.org/0683#accidental-de-immortalizing
Alternate Python Implementationshttps://peps.python.org/0683#alternate-python-implementations
Security Implicationshttps://peps.python.org/0683#security-implications
Maintainabilityhttps://peps.python.org/0683#maintainability
Specificationhttps://peps.python.org/0683#specification
Public Refcount Detailshttps://peps.python.org/0683#public-refcount-details
Constraintshttps://peps.python.org/0683#constraints
Immortal Mutable Objectshttps://peps.python.org/0683#immortal-mutable-objects
Implicitly Immortal Objectshttps://peps.python.org/0683#implicitly-immortal-objects
Un-Immortalizing Objectshttps://peps.python.org/0683#un-immortalizing-objects
_Py_IMMORTAL_REFCNThttps://peps.python.org/0683#py-immortal-refcnt
Affected APIhttps://peps.python.org/0683#affected-api
Immortal Global Objectshttps://peps.python.org/0683#immortal-global-objects
Object Cleanuphttps://peps.python.org/0683#object-cleanup
Performance Regression Mitigationshttps://peps.python.org/0683#performance-regression-mitigations
at the end of runtime init, mark all objects as immortalhttps://peps.python.org/0683#at-the-end-of-runtime-init-mark-all-objects-as-immortal
drop unnecessary hard-coded refcount operationshttps://peps.python.org/0683#drop-unnecessary-hard-coded-refcount-operations
specialize for immortal objects in the eval loophttps://peps.python.org/0683#specialize-for-immortal-objects-in-the-eval-loop
other possibilitieshttps://peps.python.org/0683#other-possibilities
Solutions for Accidental De-Immortalizationhttps://peps.python.org/0683#solutions-for-accidental-de-immortalization
Documentationhttps://peps.python.org/0683#documentation
Reference Implementationhttps://peps.python.org/0683#reference-implementation
Open Issueshttps://peps.python.org/0683#open-issues
Referenceshttps://peps.python.org/0683#references
Prior Arthttps://peps.python.org/0683#prior-art
Discussionshttps://peps.python.org/0683#discussions
Runtime Object Statehttps://peps.python.org/0683#runtime-object-state
Reference Counting, with Cyclic Garbage Collectionhttps://peps.python.org/0683#reference-counting-with-cyclic-garbage-collection
Copyrighthttps://peps.python.org/0683#copyright
reference counthttps://docs.python.org/3/glossary.html#term-reference-count
PEP 1https://peps.python.org/pep-0001/
PEP Acceptance Conditionshttps://peps.python.org/0683#pep-acceptance-conditions
Solutions for Accidental De-Immortalizationhttps://peps.python.org/0683#solutions-for-accidental-de-immortalization
Abstracthttps://peps.python.org/0683#abstract
small amount of mutable statehttps://peps.python.org/0683#runtime-object-state
Scopehttps://peps.python.org/0683#scope
Implementation Summaryhttps://peps.python.org/0683#implementation-summary
Object Cleanuphttps://peps.python.org/0683#object-cleanup
Motivationhttps://peps.python.org/0683#motivation
Reducing CPU Cache Invalidationhttps://peps.python.org/0683#reducing-cpu-cache-invalidation
Avoiding Data Raceshttps://peps.python.org/0683#avoiding-data-races
Avoiding Copy-on-Writehttps://peps.python.org/0683#avoiding-copy-on-write
Rationalehttps://peps.python.org/0683#rationale
uses a similar approachhttps://mail.python.org/archives/list/python-dev@python.org/message/JLHRTBJGKAENPNZURV4CIJSO6HI62BV3/
Impacthttps://peps.python.org/0683#impact
Benefitshttps://peps.python.org/0683#benefits
multi-process deploymentshttps://peps.python.org/Facebook
Motivationhttps://peps.python.org/0683#motivation
Performancehttps://peps.python.org/0683#performance
a 2% slowdownhttps://github.com/python/cpython/pull/19474#issuecomment-1502245844
mitigationshttps://peps.python.org/0683#mitigations
with a pre-fork modelhttps://peps.python.org/Facebook
Backward Compatibilityhttps://peps.python.org/0683#backward-compatibility
Stable ABIhttps://peps.python.org/0683#stable-abi
Accidental Immortalityhttps://peps.python.org/0683#accidental-immortality
Accidental De-Immortalizinghttps://peps.python.org/0683#accidental-de-immortalizing
Pystonhttps://mail.python.org/archives/list/python-dev@python.org/message/JLHRTBJGKAENPNZURV4CIJSO6HI62BV3/
Public Refcount Detailshttps://peps.python.org/0683#public-refcount-details
Accidental Immortalityhttps://peps.python.org/0683#accidental-immortality
Stable ABIhttps://peps.python.org/0683#stable-abi
Accidental Immortalityhttps://peps.python.org/0683#accidental-immortality
Accidental De-Immortalizinghttps://peps.python.org/0683#accidental-de-immortalizing
_Py_IMMORTAL_REFCNThttps://peps.python.org/0683#py-immortal-refcnt
Motivationhttps://peps.python.org/0683#motivation
Accidental De-Immortalizinghttps://peps.python.org/0683#accidental-de-immortalizing
Accidental Immortalityhttps://peps.python.org/0683#accidental-immortality
later onhttps://peps.python.org/SolutionsforAccidentalDe-Immortalization
Alternate Python Implementationshttps://peps.python.org/0683#alternate-python-implementations
Backward Compatibilityhttps://peps.python.org/0683#backward-compatibility
Security Implicationshttps://peps.python.org/0683#security-implications
Maintainabilityhttps://peps.python.org/0683#maintainability
Specificationhttps://peps.python.org/0683#specification
_Py_IMMORTAL_REFCNThttps://peps.python.org/0683#py-immortal-refcnt
Public Refcount Detailshttps://peps.python.org/0683#public-refcount-details
Backward Compatibilityhttps://peps.python.org/0683#backward-compatibility
documentationhttps://peps.python.org/0683#documentation
Constraintshttps://peps.python.org/0683#constraints
Immortal Mutable Objectshttps://peps.python.org/0683#immortal-mutable-objects
mitigationshttps://peps.python.org/0683#mitigations
Implicitly Immortal Objectshttps://peps.python.org/0683#implicitly-immortal-objects
Un-Immortalizing Objectshttps://peps.python.org/0683#un-immortalizing-objects
_Py_IMMORTAL_REFCNThttps://peps.python.org/0683#py-immortal-refcnt
Affected APIhttps://peps.python.org/0683#affected-api
Immortal Global Objectshttps://peps.python.org/0683#immortal-global-objects
Object Cleanuphttps://peps.python.org/0683#object-cleanup
Performance Regression Mitigationshttps://peps.python.org/0683#performance-regression-mitigations
4% performancehttps://peps.python.org/0683#performance
at the end of runtime init, mark all objects as immortalhttps://peps.python.org/0683#at-the-end-of-runtime-init-mark-all-objects-as-immortal
Immortal Mutable Objectshttps://peps.python.org/0683#immortal-mutable-objects
drop unnecessary hard-coded refcount operationshttps://peps.python.org/0683#drop-unnecessary-hard-coded-refcount-operations
specialize for immortal objects in the eval loophttps://peps.python.org/0683#specialize-for-immortal-objects-in-the-eval-loop
PEP 659https://peps.python.org/pep-0659/
Pystonhttps://mail.python.org/archives/list/python-dev@python.org/message/JLHRTBJGKAENPNZURV4CIJSO6HI62BV3/
other possibilitieshttps://peps.python.org/0683#other-possibilities
Solutions for Accidental De-Immortalizationhttps://peps.python.org/0683#solutions-for-accidental-de-immortalization
Accidental De-Immortalizinghttps://peps.python.org/0683#accidental-de-immortalizing
The discussion threadhttps://mail.python.org/archives/list/python-dev@python.org/message/OXAYWH47ZGLOWXTNKCIW4YE5PXGHNT4Y/
Documentationhttps://peps.python.org/0683#documentation
Reference Implementationhttps://peps.python.org/0683#reference-implementation
https://github.com/python/cpython/pull/19474https://github.com/python/cpython/pull/19474
Open Issueshttps://peps.python.org/0683#open-issues
Accidental De-Immortalizinghttps://peps.python.org/0683#accidental-de-immortalizing
Referenceshttps://peps.python.org/0683#references
Prior Arthttps://peps.python.org/0683#prior-art
Pystonhttps://mail.python.org/archives/list/python-dev@python.org/message/JLHRTBJGKAENPNZURV4CIJSO6HI62BV3/
Discussionshttps://peps.python.org/0683#discussions
https://mail.python.org/archives/list/python-dev@python.org/thread/7O3FUA52QGTVDC6MDAV5WXKNFEDRK5D6/#TBTHSOI2XRWRO6WQOLUW3X7S5DUXFAOVhttps://mail.python.org/archives/list/python-dev@python.org/thread/7O3FUA52QGTVDC6MDAV5WXKNFEDRK5D6/#TBTHSOI2XRWRO6WQOLUW3X7S5DUXFAOV
https://mail.python.org/archives/list/python-dev@python.org/thread/PNLBJBNIQDMG2YYGPBCTGOKOAVXRBJWYhttps://mail.python.org/archives/list/python-dev@python.org/thread/PNLBJBNIQDMG2YYGPBCTGOKOAVXRBJWY
Runtime Object Statehttps://peps.python.org/0683#runtime-object-state
PyObject.ob_refcnthttps://github.com/python/cpython/blob/80a9ba537f1f1666a9e6c5eceef4683f86967a1f/Include/object.h#L107
refcounthttps://peps.python.org/0683#refcounting
_PyGC_Headhttps://peps.python.org/PyGC_Head
“GC” objectshttps://peps.python.org/0683#refcounting
_PyObject_HEAD_EXTRAhttps://peps.python.org/PyObject_HEAD_EXTRA
Reference Counting, with Cyclic Garbage Collectionhttps://peps.python.org/0683#reference-counting-with-cyclic-garbage-collection
https://docs.python.org/3.11/c-api/intro.html#reference-countshttps://docs.python.org/3.11/c-api/intro.html#reference-counts
https://docs.python.org/3.11/c-api/refcounting.htmlhttps://docs.python.org/3.11/c-api/refcounting.html
https://docs.python.org/3.11/c-api/typeobj.html#c.PyObject.ob_refcnthttps://docs.python.org/3.11/c-api/typeobj.html#c.PyObject.ob_refcnt
https://docs.python.org/3.11/c-api/gcsupport.htmlhttps://docs.python.org/3.11/c-api/gcsupport.html
Copyrighthttps://peps.python.org/0683#copyright
PEP Acceptance Conditionshttps://peps.python.org/0683#pep-acceptance-conditions
Abstracthttps://peps.python.org/0683#abstract
Scopehttps://peps.python.org/0683#scope
Implementation Summaryhttps://peps.python.org/0683#implementation-summary
Motivationhttps://peps.python.org/0683#motivation
Reducing CPU Cache Invalidationhttps://peps.python.org/0683#reducing-cpu-cache-invalidation
Avoiding Data Raceshttps://peps.python.org/0683#avoiding-data-races
Avoiding Copy-on-Writehttps://peps.python.org/0683#avoiding-copy-on-write
Rationalehttps://peps.python.org/0683#rationale
Impacthttps://peps.python.org/0683#impact
Benefitshttps://peps.python.org/0683#benefits
Performancehttps://peps.python.org/0683#performance
Backward Compatibilityhttps://peps.python.org/0683#backward-compatibility
Accidental Immortalityhttps://peps.python.org/0683#accidental-immortality
Stable ABIhttps://peps.python.org/0683#stable-abi
Accidental De-Immortalizinghttps://peps.python.org/0683#accidental-de-immortalizing
Alternate Python Implementationshttps://peps.python.org/0683#alternate-python-implementations
Security Implicationshttps://peps.python.org/0683#security-implications
Maintainabilityhttps://peps.python.org/0683#maintainability
Specificationhttps://peps.python.org/0683#specification
Public Refcount Detailshttps://peps.python.org/0683#public-refcount-details
Constraintshttps://peps.python.org/0683#constraints
Immortal Mutable Objectshttps://peps.python.org/0683#immortal-mutable-objects
Implicitly Immortal Objectshttps://peps.python.org/0683#implicitly-immortal-objects
Un-Immortalizing Objectshttps://peps.python.org/0683#un-immortalizing-objects
_Py_IMMORTAL_REFCNThttps://peps.python.org/0683#py-immortal-refcnt
Affected APIhttps://peps.python.org/0683#affected-api
Immortal Global Objectshttps://peps.python.org/0683#immortal-global-objects
Object Cleanuphttps://peps.python.org/0683#object-cleanup
Performance Regression Mitigationshttps://peps.python.org/0683#performance-regression-mitigations
at the end of runtime init, mark all objects as immortalhttps://peps.python.org/0683#at-the-end-of-runtime-init-mark-all-objects-as-immortal
drop unnecessary hard-coded refcount operationshttps://peps.python.org/0683#drop-unnecessary-hard-coded-refcount-operations
specialize for immortal objects in the eval loophttps://peps.python.org/0683#specialize-for-immortal-objects-in-the-eval-loop
other possibilitieshttps://peps.python.org/0683#other-possibilities
Solutions for Accidental De-Immortalizationhttps://peps.python.org/0683#solutions-for-accidental-de-immortalization
Documentationhttps://peps.python.org/0683#documentation
Reference Implementationhttps://peps.python.org/0683#reference-implementation
Open Issueshttps://peps.python.org/0683#open-issues
Referenceshttps://peps.python.org/0683#references
Prior Arthttps://peps.python.org/0683#prior-art
Discussionshttps://peps.python.org/0683#discussions
Runtime Object Statehttps://peps.python.org/0683#runtime-object-state
Reference Counting, with Cyclic Garbage Collectionhttps://peps.python.org/0683#reference-counting-with-cyclic-garbage-collection
Copyrighthttps://peps.python.org/0683#copyright
Page Source (GitHub)https://github.com/python/peps/blob/main/peps/pep-0683.rst?plain=1
https://github.com/python/peps/blob/main/peps/pep-0683.rsthttps://github.com/python/peps/blob/main/peps/pep-0683.rst
2024-06-12 18:00:45 UTChttps://github.com/python/peps/commits/main/peps/pep-0683.rst

Viewport: width=device-width, initial-scale=1.0


URLs of crawlers that visited me.