[Python-Dev] Optimization targets - refcount
Paul Prescod
paul at prescod.net
Fri Apr 16 02:11:00 EDT 2004
Jewett, Jim J wrote:
> Mike Pall:
>
>
>>About GC: yes, refcounting is the silent killer.
>>... Py_DECREF 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.
So instead of writing Py_DECREF(foo) would we write code like
if(foo!=Py_None&&foo!=Py_Neg1&&foo!=Py_Zero&&foo!=PyOne){
Py_DECREF(foo);
}
Paul Prescod
More information about the Python-Dev
mailing list