(debunk-myth '(debunk-myth '(<-efficien 
Author Message
 (debunk-myth '(debunk-myth '(<-efficien


> : Can you give examples of languages that you consider to have state-of-the-
> : art gc?   I'm personally interested in hearing details about Java's GC,
> : which is apparently incremental, and runs concurrently with other Java
> : threads (info from BYTE).  Anyone have a pointer to more datailed information
> : on this?

Java's GC is a pragmatic compromise that works reasonably well, but, it should
not be confused with the state of the art.  It's a reasonably conventional trace
and mark, with conservative tracing of the C stack (which we don't use much) and
machine registers.  There's an optional compaction phase which may leave some
fragmentation due to the conservative scan.  All non-C-stack object pointers
indirect through small "handles" that don't move, so we can do exact tracing
and compaction for the most part.  GC is not incremental or generational, but
is fast enough to be reasonably nonintrusive for the uses to which we are
putting it (say 70ms with Java's default 1Mb heap).  On machines that support
it we have a low-priority GC thread that runs after the system has been idle
for a while.  This async GC thread keeps an eye out for threads becoming runnable
while it is working, and bails out early if so, wasting work but yielding good
responsiveness.  There are also a form of weak pointers (Refs), and as a last
resort the heap will grow to satisfy an allocation request.

-- Tim

Tim Lindholm                    Voice:    +1 415 473 7259 (Internal: x47259)

100 Hamilton Ave.               Palo Alto, CA 94301-1616 USA

Mon, 13 Apr 1998 03:00:00 GMT  
 [ 1 post ] 

 Relevant Pages 

1. (debunk-myth '(debunk-myth '(<-efficien

2. (debunk-myth '(debunk-myth '(<-efficien

3. (debunk-myth '(debunk-myth '(<-efficien

4. (debunk-myth '(debunk-myth '(<-efficient gc malloc/free)))

5. (debunk-myth '(debunk-myth '(<-efficient gc malloc/free)))

6. (debunk-myth '(debunk-myth '(<-efficient gc malloc/free)))

7. (debunk-myth '(debunk-myth '(<-efficient gc malloc/free)))

8. (debunk-myth '(debunk-myth '(<-efficient gc malloc/free)))

9. (debunk-myth '(debunk-myth '(<-efficient gc malloc/free)))

10. (debunk-myth '(debunk-myth '(<-efficient gc malloc/free)))

11. (debunk-myth '(debunk-myth '(<-efficient gc malloc/free)))

12. (debunk-myth '(debunk-myth '(<-efficient gc malloc/free)))


Powered by phpBB® Forum Software