[Python-Dev] Removing the GIL (Me, not you!)

Christian Heimes lists at cheimes.de
Thu Sep 13 12:11:21 CEST 2007


Phillip J. Eby wrote:
> It's not just caches and counters.  It's also every built-in type 
> structure, builtin module, builtin function...  any Python object 
> that's a built-in, period.  That includes things like None, True, and False.
> 
> Caches would include such things as the pre-created integers -100 
> through 255, the 1-byte character strings for chr(0)-chr(255), and 
> the interned strings cache, to name a few.
> 
> Most of these things I've mentioned are truly global, and not 
> specific to an individual interpreter.

Pardon my ignorance but why does Python do reference counting for truly
global and static objects like None, True, False, small and cached
integers, sys and other builtins? If I understand it correctly these
objects are never garbaged collected (at least they shouldn't) until the
interpreter exits. Wouldn't it decrease the overhead and increase speed
when Py_INCREF and Py_DECREF are NOOPs for static and immutable objects?

Christian



More information about the Python-Dev mailing list