> > > > If you are saying that the nursery sweep is fast enough that it does not > contribute significantly to pause times, then that would apply to all of > these types of collectors. The main difference (in that regard) between > concurrent and on-the-fly collectors is that nursery sweeps do not require > cross-thread coordination. >
It does apply to all collectors but other collectors have Generational heaps that do have long global pauses instead of a ref counted main heap . So they need concurent / on the fly strategies to manage the pauses. Ref counting does not have global pauses. If you have a medium nursery say as we mentioned before of a number of blocks which were locally allocated ( on diffirent threads ( but only 1 block on any thread to avoind interlock ) and then you have a Ref counted heap . Where do your global pause times come from 1. Nursery Sweep , but even this can be quite fast especially if done in parralel 2. Some root scan for cycles detection ( and cycles can be removed behind the scenes onces found) So we have small global pauses , low allocator pauses ( per thread nursery and quite large ) and good performance . What does all the concurrent /On the fly collection get us ? There is no syncronization as all the Nursery blocks get swept together in a parralel stop the world . Ben
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
