--- old/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp 2014-12-18 11:26:28.798896865 +0100 +++ new/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp 2014-12-18 11:26:28.725894730 +0100 @@ -183,6 +183,10 @@ // Returns whether the remembered set contains the given reference. bool contains_reference(OopOrNarrowOopStar from) const; + // Returns whether this remembered set (and all sub-sets) have an occupancy + // that is less or equal than the given occupancy. + bool occupancy_less_or_equal_than(size_t limit) const; + // Removes any entries shown by the given bitmaps to contain only dead // objects. Not thread safe. // Set bits in the bitmaps indicate that the given region or card is live. @@ -261,6 +265,10 @@ return (strong_code_roots_list_length() == 0) && _other_regions.is_empty(); } + bool occupancy_less_or_equal_than(size_t occ) const { + return (strong_code_roots_list_length() == 0) && _other_regions.occupancy_less_or_equal_than(occ); + } + size_t occupied() { MutexLockerEx x(&_m, Mutex::_no_safepoint_check_flag); return occupied_locked();