On Wed, 15 Dec 2021 10:42:17 +0100
Christian Heimes <christ...@python.org> wrote:
> On 14/12/2021 19.19, Eric Snow wrote:
> > A while back I concluded that neither approach would work for us.  The
> > approach I had taken would have significant cache performance
> > penalties in a per-interpreter GIL world.  The approach that modifies
> > Py_INCREF() has a significant performance penalty due to the extra
> > branch on such a frequent operation.  
> 
> Would it be possible to write the Py_INCREF() and Py_DECREF() macros in 
> a way that does not depend on branching? For example we could use the 
> highest bit of the ref count as an immutable indicator and do something like
> 
>      ob_refcnt += !(ob_refcnt >> 63)
> 
> instead of
> 
>      ob_refcnt++

Probably, but that would also issue spurious writes to immortal
refcounts from different threads at once, so might end up worse
performance-wise.

Regards

Antoine.


_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/ILW5G6BS6754S4G7A7OUNFBNOAB7DNN2/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to