[Gc] Observation about GC performance

Boehm, Hans hans.boehm at hp.com
Thu Aug 19 18:00:18 PDT 2004


In trying to measure the collector's parallel tracing rate on
a 2xP4 machine, I ran into some interesting observations:

(1) If I turn on logging and the associated bookkeeping, the parallel collector
slows down drastically, perhaps by a factor of two.  I expect this
is due to cache line bounces for the variable keeping track of
the number of live objects.

(2) The resulting counts of the number of live objects are way off,
typically by a factor of two.  The counts are maintained with
regular un-synchronized increment operations, and apparently regularly
step on each other.  So much for the theory that that's good enough
for statistics.

(3) 6.3 fails to start marker threads unless you either fork a
second mutator thread or explicitly call GC_init().  Interestingly
nothing breaks, but you just get one marker thread.

Hans


More information about the Gc mailing list