[gclist] GC triggering strategies

Paul R. Wilson wilson@cs.utexas.edu
Mon, 18 Mar 1996 22:44:57 -0600


>From majordom@iecc.com Mon Mar 18 19:06:50 1996
>Subject: [gclist] GC triggering strategies
>To: gclist@iecc.com
>
>I am working on a stop-and-mostly-copy generational GC that uses write
>barrier violations to detect and record references from older to younger
>generations.  It occurs to me that it may win to trigger a GC when the
>number of violations recorded to a level hits a given number.  Has
>anyone tried this approach?

Not that I know of, though we've thought about it.

>A more general question:  Are there any good general adaptive heuristics
>for triggering a GC?

Have a look at my opportunistic GC paper and Barry Hayes's Key Object
Opportunism paper.

Our system gc'd at local minima in the stack height.  The idea was to
find boundaries between major phases, and GC when there's little work
to do because a phase's temporary data have just died.
It seemed to work, on average and I think it's a good idea, but it's pretty
sensitive and we never got around to doing enough experiments to conclusively
prove it was a good idea.  (High variance, few data points for our little
system.)

Barry's idea seems a little more robust---you actually keep track of when
you stop holding pointers to important objects on the heap, and guess that
lots of other stuff dies too.

Anybody know of others?