This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2020年12月25日 22:50 by vstinner, last changed 2022年04月11日 14:59 by admin. This issue is now closed.
| Pull Requests | |||
|---|---|---|---|
| URL | Status | Linked | Edit |
| PR 23947 | merged | vstinner, 2020年12月25日 23:35 | |
| PR 23953 | merged | vstinner, 2020年12月26日 11:07 | |
| Messages (5) | |||
|---|---|---|---|
| msg383777 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2020年12月25日 22:50 | |
Currently, the type lookup cache is shared by all interpreter which causes multiple issues: * The version tag is currently protected by the GIL, but it would require a new lock if the GIL is made per interpreter (bpo-40512) * Clearing the cache in an interpreter clears the cache in all interpreters * The cache has a fixed size of 4096 entries. The cache misses increase with the number of interpreters, since each interpreter has its own types. I propose to make the type lookup cache per interpreter. |
|||
| msg383786 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2020年12月26日 00:45 | |
New changeset 41010184880151d6ae02a226dbacc796e5c90d11 by Victor Stinner in branch 'master': bpo-42745: Make the type cache per-interpreter (GH-23947) https://github.com/python/cpython/commit/41010184880151d6ae02a226dbacc796e5c90d11 |
|||
| msg383816 - (view) | Author: Pablo Galindo Salgado (pablogsal) * (Python committer) | Date: 2020年12月26日 18:08 | |
41010184880151d6ae02a226dbacc796e5c90d11 introduced some reference leaks: https://buildbot.python.org/all/#/builders/384/builds/136 41010184880151d6ae02a226dbacc796e5c90d11 is the first bad commit commit 41010184880151d6ae02a226dbacc796e5c90d11 Author: Victor Stinner <vstinner@python.org> Date: Sat Dec 26 01:45:43 2020 +0100 bpo-42745: Make the type cache per-interpreter (GH-23947) Make the type attribute lookup cache per-interpreter. Add private _PyType_InitCache() function, called by PyInterpreterState_New(). Continue to share next_version_tag between interpreters, since static types are still shared by interpreters. Remove MCACHE macro: the cache is no longer disabled if the EXPERIMENTAL_ISOLATED_SUBINTERPRETERS macro is defined. Include/internal/pycore_interp.h | 22 +++ Include/internal/pycore_object.h | 3 + Include/internal/pycore_pylifecycle.h | 2 +- .../2020-12-25-23-30-58.bpo-42745.XsFoHS.rst | 1 + Objects/typeobject.c | 178 ++++++++++++--------- Python/pylifecycle.c | 2 +- Python/pystate.c | 2 + 7 files changed, 128 insertions(+), 82 deletions(-) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-12-25-23-30-58.bpo-42745.XsFoHS.rst bisect run success I assume PR 23953 fixes those? If that is so, could we land it before more buildbots start to fail? |
|||
| msg383820 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2020年12月26日 19:04 | |
> I assume PR 23953 fixes those? Yes, it fix the 7 tests which leak: ./python -m test -R 3:3 -j0 test__xxsubinterpreters test_ast test_atexit test_capi test_interpreters test_threading |
|||
| msg383822 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2020年12月26日 19:26 | |
New changeset f4507231e3f0cf8827cec5592571ce371c6813e8 by Victor Stinner in branch 'master': bpo-42745: finalize_interp_types() calls _PyType_Fini() (GH-23953) https://github.com/python/cpython/commit/f4507231e3f0cf8827cec5592571ce371c6813e8 |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:59:39 | admin | set | github: 86911 |
| 2020年12月26日 19:26:19 | vstinner | set | messages: + msg383822 |
| 2020年12月26日 19:04:31 | vstinner | set | messages: + msg383820 |
| 2020年12月26日 18:08:16 | pablogsal | set | nosy:
+ pablogsal messages: + msg383816 |
| 2020年12月26日 11:07:51 | vstinner | set | pull_requests: + pull_request22800 |
| 2020年12月26日 00:46:02 | vstinner | set | status: open -> closed resolution: fixed stage: patch review -> resolved |
| 2020年12月26日 00:45:46 | vstinner | set | messages: + msg383786 |
| 2020年12月25日 23:35:58 | vstinner | set | keywords:
+ patch stage: patch review pull_requests: + pull_request22795 |
| 2020年12月25日 23:22:40 | vstinner | set | title: [subinterpreters] Make the type lookup cache per-interpreter -> [subinterpreters] Make the type attribute lookup cache per-interpreter |
| 2020年12月25日 22:50:34 | vstinner | create | |