183 // if true, then it tries to dynamically adjust the length of the |
183 // if true, then it tries to dynamically adjust the length of the |
184 // young list |
184 // young list |
185 bool _adaptive_young_list_length; |
185 bool _adaptive_young_list_length; |
186 size_t _young_list_target_length; |
186 size_t _young_list_target_length; |
187 size_t _young_list_fixed_length; |
187 size_t _young_list_fixed_length; |
|
188 size_t _prev_eden_capacity; // used for logging |
188 |
189 |
189 // The max number of regions we can extend the eden by while the GC |
190 // The max number of regions we can extend the eden by while the GC |
190 // locker is active. This should be >= _young_list_target_length; |
191 // locker is active. This should be >= _young_list_target_length; |
191 size_t _young_list_max_length; |
192 size_t _young_list_max_length; |
192 |
193 |
242 TruncatedSeq* _cost_per_byte_ms_during_cm_seq; |
243 TruncatedSeq* _cost_per_byte_ms_during_cm_seq; |
243 |
244 |
244 TruncatedSeq* _young_gc_eff_seq; |
245 TruncatedSeq* _young_gc_eff_seq; |
245 |
246 |
246 TruncatedSeq* _max_conc_overhead_seq; |
247 TruncatedSeq* _max_conc_overhead_seq; |
|
248 |
|
249 bool _using_new_ratio_calculations; |
|
250 size_t _min_desired_young_length; // as set on the command line or default calculations |
|
251 size_t _max_desired_young_length; // as set on the command line or default calculations |
247 |
252 |
248 size_t _recorded_young_regions; |
253 size_t _recorded_young_regions; |
249 size_t _recorded_non_young_regions; |
254 size_t _recorded_non_young_regions; |
250 size_t _recorded_region_num; |
255 size_t _recorded_region_num; |
251 |
256 |
824 |
829 |
825 unsigned calc_gc_alloc_time_stamp() { |
830 unsigned calc_gc_alloc_time_stamp() { |
826 return _all_pause_times_ms->num() + 1; |
831 return _all_pause_times_ms->num() + 1; |
827 } |
832 } |
828 |
833 |
829 // Recalculate the reserve region number. This should be called |
834 // This should be called after the heap is resized. |
830 // after the heap is resized. |
835 void record_new_heap_size(size_t new_number_of_regions); |
831 void calculate_reserve(size_t all_regions); |
|
832 |
836 |
833 protected: |
837 protected: |
834 |
838 |
835 // Count the number of bytes used in the CS. |
839 // Count the number of bytes used in the CS. |
836 void count_CS_bytes_used(); |
840 void count_CS_bytes_used(); |
838 // Together these do the base cleanup-recording work. Subclasses might |
842 // Together these do the base cleanup-recording work. Subclasses might |
839 // want to put something between them. |
843 // want to put something between them. |
840 void record_concurrent_mark_cleanup_end_work1(size_t freed_bytes, |
844 void record_concurrent_mark_cleanup_end_work1(size_t freed_bytes, |
841 size_t max_live_bytes); |
845 size_t max_live_bytes); |
842 void record_concurrent_mark_cleanup_end_work2(); |
846 void record_concurrent_mark_cleanup_end_work2(); |
|
847 |
|
848 void update_young_list_size_using_newratio(size_t number_of_heap_regions); |
843 |
849 |
844 public: |
850 public: |
845 |
851 |
846 virtual void init(); |
852 virtual void init(); |
847 |
853 |