hotspot/src/share/vm/gc/g1/g1CollectedHeap.hpp
changeset 37137 62fd3fb4b1b1
parent 37129 af29e306e50b
child 37144 b7ae74d4d5d8
equal deleted inserted replaced
37134:9dd3975ca940 37137:62fd3fb4b1b1
    71 class G1RemSet;
    71 class G1RemSet;
    72 class HeapRegionRemSetIterator;
    72 class HeapRegionRemSetIterator;
    73 class G1ConcurrentMark;
    73 class G1ConcurrentMark;
    74 class ConcurrentMarkThread;
    74 class ConcurrentMarkThread;
    75 class ConcurrentG1Refine;
    75 class ConcurrentG1Refine;
    76 class ConcurrentGCTimer;
       
    77 class GenerationCounters;
    76 class GenerationCounters;
    78 class STWGCTimer;
    77 class STWGCTimer;
    79 class G1NewTracer;
    78 class G1NewTracer;
    80 class G1OldTracer;
       
    81 class EvacuationFailedInfo;
    79 class EvacuationFailedInfo;
    82 class nmethod;
    80 class nmethod;
    83 class Ticks;
    81 class Ticks;
    84 class WorkGang;
    82 class WorkGang;
    85 class G1Allocator;
    83 class G1Allocator;
   268 
   266 
   269   // Keeps track of how many "old marking cycles" (i.e., Full GCs or
   267   // Keeps track of how many "old marking cycles" (i.e., Full GCs or
   270   // concurrent cycles) we have completed.
   268   // concurrent cycles) we have completed.
   271   volatile uint _old_marking_cycles_completed;
   269   volatile uint _old_marking_cycles_completed;
   272 
   270 
   273   bool _heap_summary_sent;
       
   274 
       
   275   // This is a non-product method that is helpful for testing. It is
   271   // This is a non-product method that is helpful for testing. It is
   276   // called at the end of a GC and artificially expands the heap by
   272   // called at the end of a GC and artificially expands the heap by
   277   // allocating a number of dead regions. This way we can induce very
   273   // allocating a number of dead regions. This way we can induce very
   278   // frequent marking cycles and stress the cleanup / concurrent
   274   // frequent marking cycles and stress the cleanup / concurrent
   279   // cleanup code more (as all the regions that will be allocated by
   275   // cleanup code more (as all the regions that will be allocated by
   620 
   616 
   621   uint old_marking_cycles_completed() {
   617   uint old_marking_cycles_completed() {
   622     return _old_marking_cycles_completed;
   618     return _old_marking_cycles_completed;
   623   }
   619   }
   624 
   620 
   625   void register_concurrent_cycle_start(const Ticks& start_time);
       
   626   void register_concurrent_cycle_end();
       
   627   void trace_heap_after_concurrent_cycle();
       
   628 
       
   629   G1HRPrinter* hr_printer() { return &_hr_printer; }
   621   G1HRPrinter* hr_printer() { return &_hr_printer; }
   630 
   622 
   631   // Allocates a new heap region instance.
   623   // Allocates a new heap region instance.
   632   HeapRegion* new_heap_region(uint hrs_index, MemRegion mr);
   624   HeapRegion* new_heap_region(uint hrs_index, MemRegion mr);
   633 
   625 
   898 
   890 
   899   // The (stw) reference processor...
   891   // The (stw) reference processor...
   900   ReferenceProcessor* _ref_processor_stw;
   892   ReferenceProcessor* _ref_processor_stw;
   901 
   893 
   902   STWGCTimer* _gc_timer_stw;
   894   STWGCTimer* _gc_timer_stw;
   903   ConcurrentGCTimer* _gc_timer_cm;
   895 
   904 
       
   905   G1OldTracer* _gc_tracer_cm;
       
   906   G1NewTracer* _gc_tracer_stw;
   896   G1NewTracer* _gc_tracer_stw;
   907 
   897 
   908   // During reference object discovery, the _is_alive_non_header
   898   // During reference object discovery, the _is_alive_non_header
   909   // closure (if non-null) is applied to the referent object to
   899   // closure (if non-null) is applied to the referent object to
   910   // determine whether the referent is live. If so then the
   900   // determine whether the referent is live. If so then the
  1033 
  1023 
  1034   G1NewTracer* gc_tracer_stw() const { return _gc_tracer_stw; }
  1024   G1NewTracer* gc_tracer_stw() const { return _gc_tracer_stw; }
  1035 
  1025 
  1036   // The Concurrent Marking reference processor...
  1026   // The Concurrent Marking reference processor...
  1037   ReferenceProcessor* ref_processor_cm() const { return _ref_processor_cm; }
  1027   ReferenceProcessor* ref_processor_cm() const { return _ref_processor_cm; }
  1038 
       
  1039   ConcurrentGCTimer* gc_timer_cm() const { return _gc_timer_cm; }
       
  1040   G1OldTracer* gc_tracer_cm() const { return _gc_tracer_cm; }
       
  1041 
  1028 
  1042   virtual size_t capacity() const;
  1029   virtual size_t capacity() const;
  1043   virtual size_t used() const;
  1030   virtual size_t used() const;
  1044   // This should be called when we're not holding the heap lock. The
  1031   // This should be called when we're not holding the heap lock. The
  1045   // result might be a bit inaccurate.
  1032   // result might be a bit inaccurate.