Print this page
G1: Use SoftMaxHeapSize to guide GC heuristics

Split Close
Expand all
Collapse all
          --- old/src/hotspot/share/gc/g1/g1IHOPControl.hpp
          +++ new/src/hotspot/share/gc/g1/g1IHOPControl.hpp
↓ open down ↓ 69 lines elided ↑ open up ↑
  70   70    // Together with the target occupancy, this additional buffer should contain the
  71   71    // difference between old gen size and total heap size at the start of reclamation,
  72   72    // and space required for that reclamation.
  73   73    virtual void update_allocation_info(double allocation_time_s, size_t allocated_bytes, size_t additional_buffer_size);
  74   74    // Update the time spent in the mutator beginning from the end of initial mark to
  75   75    // the first mixed gc.
  76   76    virtual void update_marking_length(double marking_length_s) = 0;
  77   77  
  78   78    virtual void print();
  79   79    virtual void send_trace_event(G1NewTracer* tracer);
       80 +
       81 +  virtual size_t predict_unstrained_buffer_size() const { return 0; }
  80   82  };
  81   83  
  82   84  // The returned concurrent mark starting occupancy threshold is a fixed value
  83   85  // relative to the maximum heap size.
  84   86  class G1StaticIHOPControl : public G1IHOPControl {
  85   87    // Most recent mutator time between the end of initial mark to the start of the
  86   88    // first mixed gc.
  87   89    double _last_marking_length_s;
  88   90   protected:
  89   91    double last_marking_length_s() const { return _last_marking_length_s; }
↓ open down ↓ 50 lines elided ↑ open up ↑
 140  142                          size_t heap_reserve_percent, // The percentage of total heap capacity that should not be tapped into.
 141  143                          size_t heap_waste_percent);  // The percentage of the free space in the heap that we think is not usable for allocation.
 142  144  
 143  145    virtual size_t get_conc_mark_start_threshold();
 144  146  
 145  147    virtual void update_allocation_info(double allocation_time_s, size_t allocated_bytes, size_t additional_buffer_size);
 146  148    virtual void update_marking_length(double marking_length_s);
 147  149  
 148  150    virtual void print();
 149  151    virtual void send_trace_event(G1NewTracer* tracer);
      152 +  virtual size_t predict_unstrained_buffer_size() const;
 150  153  };
 151  154  
 152  155  #endif // SHARE_GC_G1_G1IHOPCONTROL_HPP
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX