Python and Boehm-Demers GC, I have code.
Markus Kohler
markusk at bidra241.bbn.hp.com
Tue Jul 20 05:58:12 EDT 1999
More information about the Python-list mailing list
Tue Jul 20 05:58:12 EDT 1999
- Previous message (by thread): Python and Boehm-Demers GC, I have code.
- Next message (by thread): Python and Boehm-Demers GC, I have code.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Tim Peters" <tim_one at email.msn.com> writes: [deletia] > > My guess is that simple refcounting has excellent cache behavior in Python, > and GC doesn't. Unlike as in almost any other language, the little loop > > for i in xrange(10000000): > pass > > creates a huge amount of heap trash at a furious pace (even ints "are boxed" > in Python). RC can reuse the same little bit of storage over & over (the > trash is recycled as soon as it's created), while delayed GC chews up some > large amount of address space over & over instead. You can test this by > timing that loop alone (with and without refcounting). True. IMHO this is one of Pythons major design flaws. There is no need to create a new object for each step of the loop. Smalltalk has loops at least as flexible as Python and it doesn't have this problem. Loops in squeak (www.squeak.org) are already 2 to 3 times faster than in Python. > > Note too that Python does no stack allocation of locals or frames or > anything else: everything is heap-based, with the most speed-critical > allocations augmented by assorted internal fast free lists. Disable the > refcounting, and the finalizers on the "intense" objects don't get called, > and then the fast free lists don't get used either. So the allocation speed > optimizations Python implements get castrated too. > > I've always said it would take a very sophisticated mark-&-sweep to beat > RC's performance for *Python* (it's not Lisp, or Smalltalk, or C++, or ... > under the covers); Is there anything that would prevent someone to reimplement loops such that only one variable is allocated ? > if true (& I haven't seen anything yet that changes my > mind <wink>), you're at the first step of very long road if you want to make > BDW the primary approach; but it would be great if BDW could be invoked > "just sometimes" to reclaim the cycles RC can't catch. > > semi-encouraging-ly y'rs - tim > > > > Markus -- Markus Kohler mailto:markus_kohler at hp.com
- Previous message (by thread): Python and Boehm-Demers GC, I have code.
- Next message (by thread): Python and Boehm-Demers GC, I have code.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list