equal
deleted
inserted
replaced
46 public: |
46 public: |
47 enum GCParPhases { |
47 enum GCParPhases { |
48 GCWorkerStart, |
48 GCWorkerStart, |
49 ExtRootScan, |
49 ExtRootScan, |
50 ThreadRoots, |
50 ThreadRoots, |
51 StringTableRoots, |
|
52 UniverseRoots, |
51 UniverseRoots, |
53 JNIRoots, |
52 JNIRoots, |
54 ObjectSynchronizerRoots, |
53 ObjectSynchronizerRoots, |
55 ManagementRoots, |
54 ManagementRoots, |
56 SystemDictionaryRoots, |
55 SystemDictionaryRoots, |
102 }; |
101 }; |
103 |
102 |
104 private: |
103 private: |
105 // Markers for grouping the phases in the GCPhases enum above |
104 // Markers for grouping the phases in the GCPhases enum above |
106 static const int GCMainParPhasesLast = GCWorkerEnd; |
105 static const int GCMainParPhasesLast = GCWorkerEnd; |
107 static const int StringDedupPhasesFirst = StringDedupQueueFixup; |
|
108 static const int StringDedupPhasesLast = StringDedupTableFixup; |
|
109 |
106 |
110 WorkerDataArray<double>* _gc_par_phases[GCParPhasesSentinel]; |
107 WorkerDataArray<double>* _gc_par_phases[GCParPhasesSentinel]; |
111 |
108 |
112 WorkerDataArray<size_t>* _update_rs_processed_buffers; |
109 WorkerDataArray<size_t>* _update_rs_processed_buffers; |
113 WorkerDataArray<size_t>* _update_rs_scanned_cards; |
110 WorkerDataArray<size_t>* _update_rs_scanned_cards; |
132 double _cur_strong_code_root_purge_time_ms; |
129 double _cur_strong_code_root_purge_time_ms; |
133 |
130 |
134 double _cur_evac_fail_recalc_used; |
131 double _cur_evac_fail_recalc_used; |
135 double _cur_evac_fail_remove_self_forwards; |
132 double _cur_evac_fail_remove_self_forwards; |
136 |
133 |
137 double _cur_string_dedup_fixup_time_ms; |
134 double _cur_string_deduplication_time_ms; |
138 |
135 |
139 double _cur_prepare_tlab_time_ms; |
136 double _cur_prepare_tlab_time_ms; |
140 double _cur_resize_tlab_time_ms; |
137 double _cur_resize_tlab_time_ms; |
141 |
138 |
142 double _cur_derived_pointer_table_update_time_ms; |
139 double _cur_derived_pointer_table_update_time_ms; |
185 |
182 |
186 template <class T> |
183 template <class T> |
187 void details(T* phase, const char* indent) const; |
184 void details(T* phase, const char* indent) const; |
188 |
185 |
189 void log_phase(WorkerDataArray<double>* phase, uint indent, outputStream* out, bool print_sum) const; |
186 void log_phase(WorkerDataArray<double>* phase, uint indent, outputStream* out, bool print_sum) const; |
190 void debug_phase(WorkerDataArray<double>* phase) const; |
187 void debug_phase(WorkerDataArray<double>* phase, uint extra_indent = 0) const; |
191 void trace_phase(WorkerDataArray<double>* phase, bool print_sum = true) const; |
188 void trace_phase(WorkerDataArray<double>* phase, bool print_sum = true) const; |
192 |
189 |
193 void info_time(const char* name, double value) const; |
190 void info_time(const char* name, double value) const; |
194 void debug_time(const char* name, double value) const; |
191 void debug_time(const char* name, double value) const; |
195 // This will print logs for both 'gc+phases' and 'gc+phases+ref'. |
192 // This will print logs for both 'gc+phases' and 'gc+phases+ref'. |
270 |
267 |
271 void record_evac_fail_remove_self_forwards(double ms) { |
268 void record_evac_fail_remove_self_forwards(double ms) { |
272 _cur_evac_fail_remove_self_forwards = ms; |
269 _cur_evac_fail_remove_self_forwards = ms; |
273 } |
270 } |
274 |
271 |
275 void record_string_dedup_fixup_time(double ms) { |
272 void record_string_deduplication_time(double ms) { |
276 _cur_string_dedup_fixup_time_ms = ms; |
273 _cur_string_deduplication_time_ms = ms; |
277 } |
274 } |
278 |
275 |
279 void record_ref_proc_time(double ms) { |
276 void record_ref_proc_time(double ms) { |
280 _cur_ref_proc_time_ms = ms; |
277 _cur_ref_proc_time_ms = ms; |
281 } |
278 } |