[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
thoughts about garbage collection
Maybe someone already thought of this, but I'll give it a shot. Has anyone
gathered stats on the amount of time spent scanning old-to-old references in
cards per scavenge? Depending on that number, I have a suggestion that might
speed up scavenging by quite a bit.
According to the papers I've read on Self's current scavenging setup, the
card-marking memory overhead is around 45k. If the number of old-to-new
references per scavenge is small enough, then the marked old space cards might
be mostly pointing to old data.
My question is: do you think it might be more efficient to use the card marker
space for a stack to remember the addresses of the slots in old space that
were stored to? If there are less than 11k stores (or even 11k stores in old
objects) per scavenge, this would be feasable using the current card-marker
overhead. This way, you can check only those slots that are stored in, rather
than scan all 128 bytes of each marked card.
-- Bill Burdick
burdick@ars.rtp.nc.us