On 2/15/07, Ivan Volosyuk <[EMAIL PROTECTED]> wrote:
On 2/14/07, Xiao-Feng Li <[EMAIL PROTECTED]> wrote:
> Some researchers seperate "on-the-fly" GC from concurrent GC as a
> special case [3]. The difference as stated is "on-the-fly" GC doesn't
> require any synchronization point where all mutators are suspended,
> i.e., it suspends and resumes mutators one after another, not at the
> same time. There is also "real-time" GC proposed that can satisfy
> required real-time bounds. Metronome is one example [4].
> [3] http://www.cs.technion.ac.il/~erez/Papers/ms-sliding-views.ps
I have taken a look at the ms-sliding-views.ps paper. The on-the-fly
GC looks quite promising. One thing that bothers me is it is of 'mark
and sweep' type. It require different allocator algorithm to keep
fragmentation low, it means for me (correct me) that the allocation
rate would be rather slow and it will have suboptimal data locality. I
understand that we won't have such low pauses if we would like to move
data on a GC without read barriers. One thing which really excite me
that it doesn't require stop-the-world at all, each thread is stopped
independently, that means that it's really scalable by the number of
running threads.
Ivan, thanks. I have basically the same understanding of the
on-the-fly mark-sweep algortihm as you. It may need compaction
algorithm to reduce the accumulated fragmentation effect. Compressor
can compact the heap with rather low pause-time by leveraging the OS
mem-protect mechanism and tripple-mapping the virtual space.
Thanks,
xiaofeng
--
Ivan
Intel Enterprise Solutions Software Division