241 phase->print_details_on(&ls);
242 }
243 }
244
245 void G1GCPhaseTimes::log_phase(WorkerDataArray<double>* phase, uint indent, outputStream* out, bool print_sum) const {
246 out->print("%s", Indents[indent]);
247 phase->print_summary_on(out, print_sum);
248 details(phase, Indents[indent]);
249
250 for (uint i = 0; i < phase->MaxThreadWorkItems; i++) {
251 WorkerDataArray<size_t>* work_items = phase->thread_work_items(i);
252 if (work_items != NULL) {
253 out->print("%s", Indents[indent + 1]);
254 work_items->print_summary_on(out, true);
255 details(work_items, Indents[indent + 1]);
256 }
257 }
258 }
259
260 void G1GCPhaseTimes::debug_phase(WorkerDataArray<double>* phase) const {
261 Log(gc, phases) log;
262 if (log.is_level(LogLevel::Debug)) {
263 ResourceMark rm;
264 LogStream ls(log.debug());
265 log_phase(phase, 2, &ls, true);
266 }
267 }
268
269 void G1GCPhaseTimes::trace_phase(WorkerDataArray<double>* phase, bool print_sum) const {
270 LogTarget(Trace, gc, phases) lt;
271 if (lt.is_enabled()) {
272 LogStream ls(lt);
273 log_phase(phase, 3, &ls, print_sum);
274 }
275 }
276
277 #define TIME_FORMAT "%.1lfms"
278
279 void G1GCPhaseTimes::info_time(const char* name, double value) const {
280 log_info(gc, phases)("%s%s: " TIME_FORMAT, Indents[1], name, value);
281 }
282
283 void G1GCPhaseTimes::debug_time(const char* name, double value) const {
284 log_debug(gc, phases)("%s%s: " TIME_FORMAT, Indents[2], name, value);
|
241 phase->print_details_on(&ls);
242 }
243 }
244
245 void G1GCPhaseTimes::log_phase(WorkerDataArray<double>* phase, uint indent, outputStream* out, bool print_sum) const {
246 out->print("%s", Indents[indent]);
247 phase->print_summary_on(out, print_sum);
248 details(phase, Indents[indent]);
249
250 for (uint i = 0; i < phase->MaxThreadWorkItems; i++) {
251 WorkerDataArray<size_t>* work_items = phase->thread_work_items(i);
252 if (work_items != NULL) {
253 out->print("%s", Indents[indent + 1]);
254 work_items->print_summary_on(out, true);
255 details(work_items, Indents[indent + 1]);
256 }
257 }
258 }
259
260 void G1GCPhaseTimes::debug_phase(WorkerDataArray<double>* phase) const {
261 LogTarget(Debug, gc, phases) lt;
262 if (lt.is_enabled()) {
263 ResourceMark rm;
264 LogStream ls(lt);
265 log_phase(phase, 2, &ls, true);
266 }
267 }
268
269 void G1GCPhaseTimes::trace_phase(WorkerDataArray<double>* phase, bool print_sum) const {
270 LogTarget(Trace, gc, phases) lt;
271 if (lt.is_enabled()) {
272 LogStream ls(lt);
273 log_phase(phase, 3, &ls, print_sum);
274 }
275 }
276
277 #define TIME_FORMAT "%.1lfms"
278
279 void G1GCPhaseTimes::info_time(const char* name, double value) const {
280 log_info(gc, phases)("%s%s: " TIME_FORMAT, Indents[1], name, value);
281 }
282
283 void G1GCPhaseTimes::debug_time(const char* name, double value) const {
284 log_debug(gc, phases)("%s%s: " TIME_FORMAT, Indents[2], name, value);
|