"Laurynas Biveinis" <[EMAIL PROTECTED]> writes: > Hi, > > > > combine.c: top mem usage: 52180k (13915k). GC execution time 0.66 > > > (0.61) 4% (4%). User running time: 0m16 (0m14). > > > > Are these with checking on or off? Normally checking is on, you have > > to go out of your way to turn it off. If it were on, the real > > numbers are going to look much worse than the ones you're presented. > > Both sets of numbers are with checking on, I guess that makes them comparable? > > > Also, I've not been following real closely, but the GTY markers are > > used by PCH and the dual use of them by GC allow one to find PCH bugs > > more quickly and easily. If we moved entirely to Boehm's, did you > > have a plan for the GTY markers and PCH? > > As Andrew already has noted, I still use GTY markers at least for > registering additional roots. I don't really have a plan for PCH yet; > I guess that some additional bookkeeping would have to be done in > allocation routines using some weak-pointer based data structure... I > don't know yet.
All you should need to do to support PCH is implement the ggc_pch_* routines, specified and declared in ggc.h, for your garbage collector. Only ggc_pch_write_object actually requires you to do something, everything else is to help your implementation know what's going on. For performance, it is necessary that you don't write to many objects in the PCH file (and so freeing and re-using them is a bad idea). You need to be able to mark the pointers placed in objects read from a PCH as they may refer to newly-allocated memory.