< prev index next >
src/hotspot/share/gc/g1/collectionSetChooser.cpp
Print this page
rev 51652 : Added support for eager mixed collection of evacuation failure regions
rev 52017 : All changes for G1 GC moved from 'combined' repo folder
*** 47,56 ****
--- 47,64 ----
}
} else if (hr2 == NULL) {
return -1;
}
+ if (hr1->is_premature_old() && !hr2->is_premature_old()) {
+ return -1;
+ }
+
+ if (hr2->is_premature_old() && !hr1->is_premature_old()) {
+ return 1;
+ }
+
double gc_eff1 = hr1->gc_efficiency();
double gc_eff2 = hr2->gc_efficiency();
if (gc_eff1 > gc_eff2) {
return -1;
} if (gc_eff1 < gc_eff2) {
*** 281,291 ****
}
bool CollectionSetChooser::should_add(HeapRegion* hr) const {
return !hr->is_young() &&
!hr->is_pinned() &&
! region_occupancy_low_enough_for_evac(hr->live_bytes()) &&
hr->rem_set()->is_complete();
}
void CollectionSetChooser::rebuild(WorkGang* workers, uint n_regions) {
clear();
--- 289,299 ----
}
bool CollectionSetChooser::should_add(HeapRegion* hr) const {
return !hr->is_young() &&
!hr->is_pinned() &&
! (hr->is_premature_old() || region_occupancy_low_enough_for_evac(hr->live_bytes())) &&
hr->rem_set()->is_complete();
}
void CollectionSetChooser::rebuild(WorkGang* workers, uint n_regions) {
clear();
< prev index next >