]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-43452: Micro-optimizations to PyType_Lookup (GH-24804)
authorDino Viehland <dinoviehland@fb.com>
Sat, 20 Mar 2021 19:12:05 +0000 (12:12 -0700)
committerGitHub <noreply@github.com>
Sat, 20 Mar 2021 19:12:05 +0000 (19:12 +0000)
commitee48c7d54147ae906776b9f6f96e8920e097d0c4
treed13af349e31aedc614f885cd1eabd8813e1924d7
parent2fd16ef406bba239b1334057fb499496a84b3aa2
bpo-43452: Micro-optimizations to PyType_Lookup (GH-24804)

The common case going through _PyType_Lookup is to have a cache hit. There are some small tweaks that can make this a little cheaper:

* The name field identity is used for a cache hit and is kept alive by the cache. So there's no need to read the hash code o the name - instead, the address can be used as the hash.

*  There's no need to check if the name is cachable on the lookup either, it probably is, and if it is, it'll be in the cache.

*  If we clear the version tag when invalidating a type then we don't actually need to check for a valid version tag bit.
Misc/NEWS.d/next/Core and Builtins/2021-03-20-01-21-37.bpo-43452.tDVJkc.rst [new file with mode: 0644]
Objects/typeobject.c