On Mon, Oct 14, 2013 at 8:40 PM, Bennie Kloosteman <[email protected]>wrote:
> On Mon, Oct 14, 2013 at 11:56 PM, Jonathan S. Shapiro <[email protected]>wrote: > >> On Mon, Oct 14, 2013 at 3:47 AM, Bennie Kloosteman <[email protected]>wrote: >> >> Why does growing the heap cause a pause ? >>> >> >> Because allocating a (sequence of) underlying pages from the operating >> system is a surprisingly expensive operation. >> > > But that wont stop the progam , just allocating threads which is not as > important. > No no. We're talking about allocating a block during a TLA collection. The allocation blocks the thread performing the allocation. No allocation etc are all fine but i supose what we dont want is another > thread / stop the world stopping a non allocated thread. > We can get close, but not all the way there. We can make sure a non-allocating thread doesn't stop, but during the phase when the collector is coalescing we need to have read barriers on non-allocating threads as well. > Why use a ZCT ? , I mean to find zero counts you can just scan the > Nursery when you need to evacuate it presuming its sequentailly > allocated... > It isn't, because the nursery isn't empty at start. And you also need to scan the roots. The ZCT appears to be an alternative encoding for roots, but one that is only effective if objects don't relocate. shap
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
