OPT-10 Precompute the hashes for LOAD_NAME and LOAD_GLOBAL dictionary lookups¶
Python has two opcodes for variables which are not defined in the scope of the local function/frame,
Both opcodes will do a lookup of the variable name. The frame globals, or frame locals attributes are normally dictionaries, so the name will be hashed _every_ time it’s called.
The hashes for variable names are precomputed and emitted along with the opcode calls, a shortcut function is used
_PyDict_GetItem_KnownHash to bypass the calculation of the hash each time.
Calling builtins is faster
Reading out of scope variables is faster
This optimization is enabled at level 1 by default. See Optimizations for help on changing runtime optimization settings.