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 {