Moving towards Python 3.0 (was Re: [Python-Dev] Speed up function calls)

Bob Ippolito bob at redivi.com
Mon Jan 31 17:04:51 CET 2005


On Jan 31, 2005, at 10:43, Evan Jones wrote:

> On Jan 31, 2005, at 0:17, Guido van Rossum wrote:
>> The "just kidding" applies to the whole list, right? None of these
>> strike me as good ideas, except for improvements to function argument
>> passing.
>
> Really? You see no advantage to moving to garbage collection, nor 
> allowing Python to leverage multiple processor environments? I'd be 
> curious to hear your reasons why not.
>
> My knowledge about garbage collection is weak, but I have read a 
> little bit of Hans Boehm's work on garbage collection. For example, 
> his "Memory Allocation Myths and Half Truths" presentation 
> (http://www.hpl.hp.com/personal/Hans_Boehm/gc/myths.ps) is quite 
> interesting. On page 25 he examines reference counting. The biggest 
> disadvantage mentioned is that simple pointer assignments end up 
> becoming "increment ref count" operations as well, which can "involve 
> at least 4 potential memory references." The next page has a 
> micro-benchmark that shows reference counting performing very poorly. 
> Not to mention that Python has a garbage collector *anyway,* so 
> wouldn't it make sense to get rid of the reference counting?
>
> My only argument for making Python capable of leveraging multiple 
> processor environments is that multithreading seems to be where the 
> big performance increases will be in the next few years. I am 
> currently using Python for some relatively large simulations, so 
> performance is important to me.

Wouldn't it be nicer to have a facility that let you send messages 
between processes and manage concurrency properly instead?  You'll need 
most of this anyway to do multithreading sanely, and the benefit to the 
multiple process model is that you can scale to multiple machines, not 
just processors.  For brokering data between processes on the same 
machine, you can use mapped memory if you can't afford to copy it 
around, which gives you basically all the benefits of threads with 
fewer pitfalls.

-bob



More information about the Python-Dev mailing list