[gclist] gc concerns

Pekka P. Pirinen pekka@harlequin.co.uk
Wed, 13 Dec 2000 19:39:49 GMT


> * if i'm not mistaken, conservative and copying collectors suspend
> all other threads while collecting.

Not necessarily, but in your case, yes.  This depends on the barrier
technique used to maintain consistency in the face of changes made by
the mutator (the application code).  Since you're writing C/C++, you
probably don't have the option of adding barrier code for every read
and/or write.  This pretty much rules out a concurrent collector.

> we're probably going to use a 4 or 8 processor server box, so would
> this a real performance concern? if so, are there any reliable
> incremental or concurrent collectors available for windows c++
> environments?

Well, it would make the pause times 4 or 8 times longer.  There aren't
any parallel collectors (that would use all the processors for GC) for
Windows that I know of, since SGC from Tokyo isn't available on that
platform.

Using an incremental collector and stopping all the threads is a
viable option, since the pause times can usually be made acceptable.
You should start by looking at the Boehm-Demers-Weiser conservative
garbage collector <http://www.hpl.hp.com/personal/Hans_Boehm/gc/>.
Ah, I see Hans Boehm himself told you about that.

If that or Geodesic's packages don't fit your needs, you can talk to
us <http://www.xanalys.com/software_tools/mm/consult.html>.
-- 
Pekka P. Pirinen
Adaptive Memory Management Group, Harlequin Limited