< prev index next >
src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp
Print this page
rev 7471 : 8060025: Object copy time regressions after JDK-8031323 and JDK-8057536
Summary: Evaluate and improve object copy time by micro-optimizations and splitting out slow and fast paths aggressively.
Reviewed-by:
Contributed-by: Tony Printezis <tprintezis@twitter.com>, Thomas Schatzl <thomas.schatzl@oracle.com>
*** 879,910 ****
ageTable _survivors_age_table;
public:
uint tenuring_threshold() const { return _tenuring_threshold; }
- inline GCAllocPurpose
- evacuation_destination(HeapRegion* src_region, uint age, size_t word_sz) {
- if (age < _tenuring_threshold && src_region->is_young()) {
- return GCAllocForSurvived;
- } else {
- return GCAllocForTenured;
- }
- }
-
- inline bool track_object_age(GCAllocPurpose purpose) {
- return purpose == GCAllocForSurvived;
- }
-
static const uint REGIONS_UNLIMITED = (uint) -1;
! uint max_regions(int purpose);
!
! // The limit on regions for a particular purpose is reached.
! void note_alloc_region_limit_reached(int purpose) {
! if (purpose == GCAllocForSurvived) {
! _tenuring_threshold = 0;
}
}
void note_start_adding_survivor_regions() {
_survivor_surv_rate_group->start_adding_regions();
}
--- 879,902 ----
ageTable _survivors_age_table;
public:
uint tenuring_threshold() const { return _tenuring_threshold; }
static const uint REGIONS_UNLIMITED = (uint) -1;
! uint max_regions(in_cset_state_t dest) {
! switch (dest) {
! case InCSetState::Young:
! return _max_survivor_regions;
! case InCSetState::Old:
! return REGIONS_UNLIMITED;
! default:
! assert(false, err_msg("unknown dest: %d", dest));
! break;
}
+ // keep some compilers happy
+ return 0;
}
void note_start_adding_survivor_regions() {
_survivor_surv_rate_group->start_adding_regions();
}
< prev index next >