src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hs-gc-remove-define_num_seq Cdiff src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp

src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp

Print this page

        

*** 35,87 **** // * when to collect. class HeapRegion; class CollectionSetChooser; ! // Yes, this is a bit unpleasant... but it saves replicating the same thing ! // over and over again and introducing subtle problems through small typos and ! // cutting and pasting mistakes. The macros below introduces a number ! // sequnce into the following two classes and the methods that access it. ! ! #define define_num_seq(name) \ ! private: \ ! NumberSeq _all_##name##_times_ms; \ ! public: \ ! void record_##name##_time_ms(double ms) { \ ! _all_##name##_times_ms.add(ms); \ ! } \ ! NumberSeq* get_##name##_seq() { \ ! return &_all_##name##_times_ms; \ ! } ! ! class MainBodySummary; ! ! class PauseSummary: public CHeapObj { ! define_num_seq(total) ! define_num_seq(other) ! public: ! virtual MainBodySummary* main_body_summary() { return NULL; } ! }; ! class MainBodySummary: public CHeapObj { ! define_num_seq(root_region_scan_wait) ! define_num_seq(parallel) // parallel only ! define_num_seq(ext_root_scan) ! define_num_seq(satb_filtering) ! define_num_seq(update_rs) ! define_num_seq(scan_rs) ! define_num_seq(obj_copy) ! define_num_seq(termination) // parallel only ! define_num_seq(parallel_other) // parallel only ! define_num_seq(clear_ct) ! }; - class Summary: public PauseSummary, - public MainBodySummary { public: ! virtual MainBodySummary* main_body_summary() { return this; } }; // There are three command line options related to the young gen size: // NewSize, MaxNewSize and NewRatio (There is also -Xmn, but that is // just a short form for NewSize==MaxNewSize). G1 will use its internal --- 35,97 ---- // * when to collect. class HeapRegion; class CollectionSetChooser; ! class TraceGen0TimeData : public CHeapObj { ! private: ! unsigned _young_pause_num; ! unsigned _mixed_pause_num; ! NumberSeq _all_stop_world_times_ms; ! NumberSeq _all_yield_times_ms; ! NumberSeq _total; ! NumberSeq _other; ! NumberSeq _root_region_scan_wait; ! NumberSeq _parallel; ! NumberSeq _ext_root_scan; ! NumberSeq _satb_filtering; ! NumberSeq _update_rs; ! NumberSeq _scan_rs; ! NumberSeq _obj_copy; ! NumberSeq _termination; ! NumberSeq _parallel_other; ! NumberSeq _clear_ct; ! ! void print_summary (int level, const char* str, const NumberSeq* seq) const; ! void print_summary_sd (int level, const char* str, const NumberSeq* seq) const; public: ! TraceGen0TimeData() : _young_pause_num(0), _mixed_pause_num(0) {}; ! void record_start_collection(double time_to_stop_the_world_ms); ! void record_yield_time(double yield_time_ms); ! void record_end_collection( ! double total_ms, ! double other_ms, ! double root_region_scan_wait_ms, ! double parallel_ms, ! double ext_root_scan_ms, ! double satb_filtering_ms, ! double update_rs_ms, ! double scan_rs_ms, ! double obj_copy_ms, ! double termination_ms, ! double parallel_other_ms, ! double clear_ct_ms); ! void increment_young_collection_count(); ! void increment_mixed_collection_count(); ! void print() const; ! }; ! ! class TraceGen1TimeData : public CHeapObj { ! private: ! NumberSeq _all_full_gc_times; ! ! public: ! void record_full_collection(double full_gc_time_ms); ! void print() const; }; // There are three command line options related to the young gen size: // NewSize, MaxNewSize and NewRatio (There is also -Xmn, but that is // just a short form for NewSize==MaxNewSize). G1 will use its internal
*** 197,219 **** TruncatedSeq* _recent_gc_times_ms; TruncatedSeq* _concurrent_mark_remark_times_ms; TruncatedSeq* _concurrent_mark_cleanup_times_ms; ! Summary* _summary; - NumberSeq* _all_pause_times_ms; - NumberSeq* _all_full_gc_times_ms; double _stop_world_start; - NumberSeq* _all_stop_world_times_ms; - NumberSeq* _all_yield_times_ms; - - int _aux_num; - NumberSeq* _all_aux_times_ms; - double* _cur_aux_start_times_ms; - double* _cur_aux_times_ms; - bool* _cur_aux_times_set; double* _par_last_gc_worker_start_times_ms; double* _par_last_ext_root_scan_times_ms; double* _par_last_satb_filtering_times_ms; double* _par_last_update_rs_times_ms; --- 207,220 ---- TruncatedSeq* _recent_gc_times_ms; TruncatedSeq* _concurrent_mark_remark_times_ms; TruncatedSeq* _concurrent_mark_cleanup_times_ms; ! TraceGen0TimeData _trace_gen0_time_data; ! TraceGen1TimeData _trace_gen1_time_data; double _stop_world_start; double* _par_last_gc_worker_start_times_ms; double* _par_last_ext_root_scan_times_ms; double* _par_last_satb_filtering_times_ms; double* _par_last_update_rs_times_ms;
*** 241,253 **** // locker is active. This should be >= _young_list_target_length; uint _young_list_max_length; bool _last_gc_was_young; - unsigned _young_pause_num; - unsigned _mixed_pause_num; - bool _during_marking; bool _in_marking_window; bool _in_marking_window_im; SurvRateGroup* _short_lived_surv_rate_group; --- 242,251 ----
*** 555,573 **** void print_stats(int level, const char* str, double value, int workers); void print_stats(int level, const char* str, int value); void print_par_stats(int level, const char* str, double* data, bool showDecimals = true); - void check_other_times(int level, - NumberSeq* other_times_ms, - NumberSeq* calc_other_times_ms) const; - - void print_summary (PauseSummary* stats) const; - - void print_summary (int level, const char* str, NumberSeq* seq) const; - void print_summary_sd (int level, const char* str, NumberSeq* seq) const; - double avg_value (double* data); double max_value (double* data); double sum_of_values (double* data); double max_sum (double* data1, double* data2); --- 553,562 ----
*** 743,756 **** size_t bytes_in_collection_set() { return _bytes_in_collection_set_before_gc; } - unsigned calc_gc_alloc_time_stamp() { - return _all_pause_times_ms->num() + 1; - } - // This should be called after the heap is resized. void record_new_heap_size(uint new_number_of_regions); void init(); --- 732,741 ----
*** 865,886 **** void record_code_root_fixup_time(double ms) { _cur_collection_code_root_fixup_time_ms = ms; } - void record_aux_start_time(int i) { - guarantee(i < _aux_num, "should be within range"); - _cur_aux_start_times_ms[i] = os::elapsedTime() * 1000.0; - } - - void record_aux_end_time(int i) { - guarantee(i < _aux_num, "should be within range"); - double ms = os::elapsedTime() * 1000.0 - _cur_aux_start_times_ms[i]; - _cur_aux_times_set[i] = true; - _cur_aux_times_ms[i] += ms; - } - void record_ref_proc_time(double ms) { _cur_ref_proc_time_ms = ms; } void record_ref_enq_time(double ms) { --- 850,859 ----
src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File