At 12:37 AM 10/11/99 +0200, Jan Vroonhof wrote:
Hrvoje Niksic <hniksic(a)srce.hr> writes:
> > That's what I'm working on right now: using an external hash table
> > for marking instead of an internal markbit.
>
> Won't this slow things down? XEmacs' GC is not exactly fast as it is.
> Making it any slower would be a mistake.
It depends. If (most) objects XEmacs are organised in pools it would
be possible to write the sweep loop such that it is scans over the
heap in a linear fashion, backtracking only occasionally. Supposing
the locality of reference is good an the hashing is done per page that
means that the hash is needed relatively seldom. In addition in such
an implementation the _address_ is used in the hash table. The object
itself is not needed until the sweep arrives. My guess would be that
this would produce better cache behaviour that would offset any
computational disadvantages.
Sounds like a job for Martin :)
andy
--------------------------------------------------------------
Dr Andy Piper
Senior Consultant Architect, BEA Systems Ltd