src/share/vm/memory/collectorPolicy.hpp

changeset 448
183f41cf8bfe
parent 435
a61af66fc99e
child 631
d1605aabd0a1
child 777
37f87013dfd8
     1.1 --- a/src/share/vm/memory/collectorPolicy.hpp	Fri Feb 29 14:42:56 2008 -0800
     1.2 +++ b/src/share/vm/memory/collectorPolicy.hpp	Sun Mar 02 16:10:12 2008 -0800
     1.3 @@ -82,8 +82,11 @@
     1.4    size_t max_alignment()                       { return _max_alignment; }
     1.5  
     1.6    size_t initial_heap_byte_size() { return _initial_heap_byte_size; }
     1.7 +  void set_initial_heap_byte_size(size_t v) { _initial_heap_byte_size = v; }
     1.8    size_t max_heap_byte_size()     { return _max_heap_byte_size; }
     1.9 +  void set_max_heap_byte_size(size_t v) { _max_heap_byte_size = v; }
    1.10    size_t min_heap_byte_size()     { return _min_heap_byte_size; }
    1.11 +  void set_min_heap_byte_size(size_t v) { _min_heap_byte_size = v; }
    1.12  
    1.13    enum Name {
    1.14      CollectorPolicyKind,
    1.15 @@ -182,8 +185,24 @@
    1.16    // compute max heap alignment
    1.17    size_t compute_max_alignment();
    1.18  
    1.19 + // Scale the base_size by NewRation according to
    1.20 + //     result = base_size / (NewRatio + 1)
    1.21 + // and align by min_alignment()
    1.22 + size_t scale_by_NewRatio_aligned(size_t base_size);
    1.23 +
    1.24 + // Bound the value by the given maximum minus the
    1.25 + // min_alignment.
    1.26 + size_t bound_minus_alignment(size_t desired_size, size_t maximum_size);
    1.27  
    1.28   public:
    1.29 +  // Accessors
    1.30 +  size_t min_gen0_size() { return _min_gen0_size; }
    1.31 +  void set_min_gen0_size(size_t v) { _min_gen0_size = v; }
    1.32 +  size_t initial_gen0_size() { return _initial_gen0_size; }
    1.33 +  void set_initial_gen0_size(size_t v) { _initial_gen0_size = v; }
    1.34 +  size_t max_gen0_size() { return _max_gen0_size; }
    1.35 +  void set_max_gen0_size(size_t v) { _max_gen0_size = v; }
    1.36 +
    1.37    virtual int number_of_generations() = 0;
    1.38  
    1.39    virtual GenerationSpec **generations()       {
    1.40 @@ -236,6 +255,14 @@
    1.41    void initialize_generations()                { ShouldNotReachHere(); }
    1.42  
    1.43   public:
    1.44 +  // Accessors
    1.45 +  size_t min_gen1_size() { return _min_gen1_size; }
    1.46 +  void set_min_gen1_size(size_t v) { _min_gen1_size = v; }
    1.47 +  size_t initial_gen1_size() { return _initial_gen1_size; }
    1.48 +  void set_initial_gen1_size(size_t v) { _initial_gen1_size = v; }
    1.49 +  size_t max_gen1_size() { return _max_gen1_size; }
    1.50 +  void set_max_gen1_size(size_t v) { _max_gen1_size = v; }
    1.51 +
    1.52    // Inherited methods
    1.53    TwoGenerationCollectorPolicy* as_two_generation_policy() { return this; }
    1.54  
    1.55 @@ -246,6 +273,10 @@
    1.56    virtual CollectorPolicy::Name kind() {
    1.57      return CollectorPolicy::TwoGenerationCollectorPolicyKind;
    1.58    }
    1.59 +
    1.60 +  // Returns true is gen0 sizes were adjusted
    1.61 +  bool adjust_gen0_sizes(size_t* gen0_size_ptr, size_t* gen1_size_ptr,
    1.62 +                               size_t heap_size, size_t min_gen1_size);
    1.63  };
    1.64  
    1.65  class MarkSweepPolicy : public TwoGenerationCollectorPolicy {

mercurial