< prev index next >

src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp

Print this page
rev 7321 : 8048179: Early reclaim of large objects that are referenced by a few objects
Summary: Push the remembered sets of large objects with few referenced into the dirty card queue at the beginning of the evacuation so that they may end up with zero remembered set entries at the end of the collection, and are potentially reclaimed. Also improve timing measurements of the early reclaim mechanism, and shorten flag names.
Reviewed-by: brutisso, jmasa, dfazunen


 647   inline PLABStats* alloc_buffer_stats(InCSetState dest);
 648 
 649   // Determines PLAB size for a given destination.
 650   inline size_t desired_plab_sz(InCSetState dest);
 651 
 652   inline AllocationContextStats& allocation_context_stats();
 653 
 654   // Do anything common to GC's.
 655   virtual void gc_prologue(bool full);
 656   virtual void gc_epilogue(bool full);
 657 
 658   inline void set_humongous_is_live(oop obj);
 659 
 660   bool humongous_is_live(uint region) {
 661     return _humongous_is_live.is_live(region);
 662   }
 663 
 664   // Returns whether the given region (which must be a humongous (start) region)
 665   // is to be considered conservatively live regardless of any other conditions.
 666   bool humongous_region_is_always_live(uint index);



 667   // Register the given region to be part of the collection set.
 668   inline void register_humongous_region_with_in_cset_fast_test(uint index);
 669   // Register regions with humongous objects (actually on the start region) in
 670   // the in_cset_fast_test table.
 671   void register_humongous_regions_with_in_cset_fast_test();
 672   // We register a region with the fast "in collection set" test. We
 673   // simply set to true the array slot corresponding to this region.
 674   void register_young_region_with_in_cset_fast_test(HeapRegion* r) {
 675     _in_cset_fast_test.set_in_young(r->hrm_index());
 676   }
 677   void register_old_region_with_in_cset_fast_test(HeapRegion* r) {
 678     _in_cset_fast_test.set_in_old(r->hrm_index());
 679   }
 680 
 681   // This is a fast test on whether a reference points into the
 682   // collection set or not. Assume that the reference
 683   // points into the heap.
 684   inline bool in_cset_fast_test(oop obj);
 685 
 686   void clear_cset_fast_test() {




 647   inline PLABStats* alloc_buffer_stats(InCSetState dest);
 648 
 649   // Determines PLAB size for a given destination.
 650   inline size_t desired_plab_sz(InCSetState dest);
 651 
 652   inline AllocationContextStats& allocation_context_stats();
 653 
 654   // Do anything common to GC's.
 655   virtual void gc_prologue(bool full);
 656   virtual void gc_epilogue(bool full);
 657 
 658   inline void set_humongous_is_live(oop obj);
 659 
 660   bool humongous_is_live(uint region) {
 661     return _humongous_is_live.is_live(region);
 662   }
 663 
 664   // Returns whether the given region (which must be a humongous (start) region)
 665   // is to be considered conservatively live regardless of any other conditions.
 666   bool humongous_region_is_always_live(uint index);
 667   // Returns whether the given region (which must be a humongous (start) region)
 668   // is considered a candidate for eager reclamation.
 669   bool humongous_region_is_candidate(uint index);
 670   // Register the given region to be part of the collection set.
 671   inline void register_humongous_region_with_in_cset_fast_test(uint index);
 672   // Register regions with humongous objects (actually on the start region) in
 673   // the in_cset_fast_test table.
 674   void register_humongous_regions_with_in_cset_fast_test();
 675   // We register a region with the fast "in collection set" test. We
 676   // simply set to true the array slot corresponding to this region.
 677   void register_young_region_with_in_cset_fast_test(HeapRegion* r) {
 678     _in_cset_fast_test.set_in_young(r->hrm_index());
 679   }
 680   void register_old_region_with_in_cset_fast_test(HeapRegion* r) {
 681     _in_cset_fast_test.set_in_old(r->hrm_index());
 682   }
 683 
 684   // This is a fast test on whether a reference points into the
 685   // collection set or not. Assume that the reference
 686   // points into the heap.
 687   inline bool in_cset_fast_test(oop obj);
 688 
 689   void clear_cset_fast_test() {


< prev index next >