[Python-Dev] A bit about the GIL (original) (raw)
Antoine Pitrou solipsis at pitrou.net
Mon Apr 1 11:32:12 CEST 2013
- Previous message: [Python-Dev] A bit about the GIL
- Next message: [Python-Dev] relative import circular problem
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hello,
On Mon, 1 Apr 2013 01:14:11 +0200 Alfredo Solano MartÃnez <asolano at icai.es> wrote:
The logic would then be something like this: - when increasing the refcount, a thread writes only to its own subcounter, creating one first if necessary. - similarly, when decreasing the refcount, there is no need to access other subcounters until that subcounter reaches zero. - when a subcounter gets to zero, delete it, and read the other subcounters to check if it was the last one.
But then you will decrement another subcounter, right? Meaning you need a lock around all increments / decrements.
Unfortunately, in a crude test of mine there is already a severe performance degradation, and that is without rwlocks.
Yes, there will be. Given how often INCREF and DECREF are called, any complication of their implementation will significantly decrease single-threaded performance.
See also http://mail.python.org/pipermail/python-ideas/2009-November/006599.html
Regards
Antoine.
- Previous message: [Python-Dev] A bit about the GIL
- Next message: [Python-Dev] relative import circular problem
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]