8027295: Free CSet takes ~50% of young pause time

Improve fast card cache iteration and avoid taking locks when freeing the collection set.

Reviewed-by: brutisso
This commit is contained in:
Thomas Schatzl 2014-03-17 10:13:18 +01:00
parent cde8aa670b
commit d3e28ca682
7 changed files with 54 additions and 13 deletions

View file

@ -763,9 +763,12 @@ public:
// list later). The used bytes of freed regions are accumulated in
// pre_used. If par is true, the region's RSet will not be freed
// up. The assumption is that this will be done later.
// The locked parameter indicates if the caller has already taken
// care of proper synchronization. This may allow some optimizations.
void free_region(HeapRegion* hr,
FreeRegionList* free_list,
bool par);
bool par,
bool locked = false);
// Frees a humongous region by collapsing it into individual regions
// and calling free_region() for each of them. The freed regions