Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp @ 4095:bca17e38de00
6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads
Summary: Select number of GC threads dynamically based on heap usage and number of Java threads
Reviewed-by: johnc, ysr, jcoomes
author | jmasa |
---|---|
date | Tue, 09 Aug 2011 10:16:01 -0700 |
parents | a88de71c4e3a |
children | 00dd86e542eb |
comparison
equal
deleted
inserted
replaced
4094:3a298e04d914 | 4095:bca17e38de00 |
---|---|
87 private: | 87 private: |
88 // either equal to the number of parallel threads, if ParallelGCThreads | 88 // either equal to the number of parallel threads, if ParallelGCThreads |
89 // has been set, or 1 otherwise | 89 // has been set, or 1 otherwise |
90 int _parallel_gc_threads; | 90 int _parallel_gc_threads; |
91 | 91 |
92 // The number of GC threads currently active. | |
93 uintx _no_of_gc_threads; | |
94 | |
92 enum SomePrivateConstants { | 95 enum SomePrivateConstants { |
93 NumPrevPausesForHeuristics = 10 | 96 NumPrevPausesForHeuristics = 10 |
94 }; | 97 }; |
95 | 98 |
96 G1MMUTracker* _mmu_tracker; | 99 G1MMUTracker* _mmu_tracker; |
278 | 281 |
279 void adjust_concurrent_refinement(double update_rs_time, | 282 void adjust_concurrent_refinement(double update_rs_time, |
280 double update_rs_processed_buffers, | 283 double update_rs_processed_buffers, |
281 double goal_ms); | 284 double goal_ms); |
282 | 285 |
286 uintx no_of_gc_threads() { return _no_of_gc_threads; } | |
287 void set_no_of_gc_threads(uintx v) { _no_of_gc_threads = v; } | |
288 | |
283 double _pause_time_target_ms; | 289 double _pause_time_target_ms; |
284 double _recorded_young_cset_choice_time_ms; | 290 double _recorded_young_cset_choice_time_ms; |
285 double _recorded_non_young_cset_choice_time_ms; | 291 double _recorded_non_young_cset_choice_time_ms; |
286 size_t _pending_cards; | 292 size_t _pending_cards; |
287 size_t _max_pending_cards; | 293 size_t _max_pending_cards; |
288 | 294 |
289 public: | 295 public: |
296 // Accessors | |
290 | 297 |
291 void set_region_eden(HeapRegion* hr, int young_index_in_cset) { | 298 void set_region_eden(HeapRegion* hr, int young_index_in_cset) { |
292 hr->set_young(); | 299 hr->set_young(); |
293 hr->install_surv_rate_group(_short_lived_surv_rate_group); | 300 hr->install_surv_rate_group(_short_lived_surv_rate_group); |
294 hr->set_young_index_in_cset(young_index_in_cset); | 301 hr->set_young_index_in_cset(young_index_in_cset); |
735 | 742 |
736 void record_concurrent_mark_remark_start(); | 743 void record_concurrent_mark_remark_start(); |
737 void record_concurrent_mark_remark_end(); | 744 void record_concurrent_mark_remark_end(); |
738 | 745 |
739 void record_concurrent_mark_cleanup_start(); | 746 void record_concurrent_mark_cleanup_start(); |
740 void record_concurrent_mark_cleanup_end(); | 747 void record_concurrent_mark_cleanup_end(int no_of_gc_threads); |
741 void record_concurrent_mark_cleanup_completed(); | 748 void record_concurrent_mark_cleanup_completed(); |
742 | 749 |
743 void record_concurrent_pause(); | 750 void record_concurrent_pause(); |
744 void record_concurrent_pause_end(); | 751 void record_concurrent_pause_end(); |
745 | 752 |
746 void record_collection_pause_end(); | 753 void record_collection_pause_end(int no_of_gc_threads); |
747 void print_heap_transition(); | 754 void print_heap_transition(); |
748 | 755 |
749 // Record the fact that a full collection occurred. | 756 // Record the fact that a full collection occurred. |
750 void record_full_collection_start(); | 757 void record_full_collection_start(); |
751 void record_full_collection_end(); | 758 void record_full_collection_end(); |