Python's biggest compromises
brian at sweetapp.com
Sat Aug 2 07:41:38 CEST 2003
> In a fast GC system you would just allocate the floats from a
> contiguous block.
This is how Python works now.
> Later you would copy the reachable floats from that block to another
> block. If no floats are reachable, you don't copy anything.
Is determining if a float is reachable faster or slower than
dereferencing a pointer and comparing an integer to zero? 'cause that is
all reference counting requires.
I'm not saying that the reference counting (+ something else) is the
optimal GC strategy for Python but it seems to have advantages when
working with a lot of objects with short lifetimes.
> Does checking to see if a There are all kinds of optimizations you
> can use, including making clever use of memory protection hardware
> to notice when your allocator has run over the end of a block so
> you don't have to even make an explicit pointer comparison, that
> can make all this run very fast.
Of course the PythonLabs implementation can never require such a trick.
More information about the Python-list