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 _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com