[Python-Dev] Optimization targets - refcount (original) (raw)

Jewett, Jim J jim.jewett at eds.com
Thu Apr 15 14:08:34 EDT 2004


Mike Pall:

About GC: yes, refcounting is the silent killer. ... PyDECREF is awful ... > 3500 locations

Is it always needed?

What if a few common (constant, singleton) objects (such as None, -1, 0, 1) were declared immortal at compile-time? They would be created at initial load in a special untracked pool, and their tp_dealloc would do nothing.

The slot for tracking references would still be there, but could be ignored -- even if it went negative.

Since the reference count no longer has to be correct (for these objects), the reference counting macros could optimize to nothing when they know at compile time that they'll have one of these constant objects.

-jJ



More information about the Python-Dev mailing list