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

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/HansBoehm/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