Hi, David Stutz wrote:
> Rotor copies generation 0, and does mark and sweep on generation 1. > > Are you proposing to build a semi-space collector, which bounces objects back and >forth between two spaces? > > Large objects can be very expensive to scan for interior pointers and to copy, which >means that mark and sweep is a good strategy once they get to a certain size. This is >also part of what Rotor does now. > yeah certainly mark and sweep does a better job esp in case of large objects and stuff, but i was looking at a concurrent GC scheme and implementing copying was easier than sweeping the heap > > With regard to your question, it should certainly be possible to use the handle >table with various kinds of collection algorithm, since support is already there for >both copy and mark and sweep. You'll notice that handle collection uses a callback >function, GCHeap::Promote, that has the check for generation 0 hardwired into it, >which results in calls to either copy_object_simple or mark_object_simple. At the >very least, this callback would need to be modified to make the handle table stuff >work with other collection strategies. To make everything else work (more than the >handle table) would involve more changes, I have no doubt... > thank you so much, this was all i wanted to know regards, archana