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.
 
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...
 
Hope this is helpful.
 
-- David
 
 
________________________________

From:    Archana [mailto:[EMAIL PROTECTED]]     
Sent:    Mon 2/10/2003 5:29 AM  
To:      [EMAIL PROTECTED]       
Subject:         [DOTNET-ROTOR] object handle table interface   
        

Hi,

 Can the Object handle table interface be used as it is, with a GC that
does copying collection for both minor and major collections
(unlike rotor that chooses to do a mark-sweep for a major one).
Are there any changes that the developer needs to make for this to work?

thanks and regards,
archana

Reply via email to