3543 return false; |
3543 return false; |
3544 } |
3544 } |
3545 }; |
3545 }; |
3546 #endif // ASSERT |
3546 #endif // ASSERT |
3547 |
3547 |
|
3548 uint G1CollectedHeap::num_task_queues() const { |
|
3549 return _task_queues->size(); |
|
3550 } |
|
3551 |
3548 #if TASKQUEUE_STATS |
3552 #if TASKQUEUE_STATS |
3549 void G1CollectedHeap::print_taskqueue_stats_hdr(outputStream* const st) { |
3553 void G1CollectedHeap::print_taskqueue_stats_hdr(outputStream* const st) { |
3550 st->print_raw_cr("GC Task Stats"); |
3554 st->print_raw_cr("GC Task Stats"); |
3551 st->print_raw("thr "); TaskQueueStats::print_header(1, st); st->cr(); |
3555 st->print_raw("thr "); TaskQueueStats::print_header(1, st); st->cr(); |
3552 st->print_raw("--- "); TaskQueueStats::print_header(2, st); st->cr(); |
3556 st->print_raw("--- "); TaskQueueStats::print_header(2, st); st->cr(); |
3554 |
3558 |
3555 void G1CollectedHeap::print_taskqueue_stats(outputStream* const st) const { |
3559 void G1CollectedHeap::print_taskqueue_stats(outputStream* const st) const { |
3556 print_taskqueue_stats_hdr(st); |
3560 print_taskqueue_stats_hdr(st); |
3557 |
3561 |
3558 TaskQueueStats totals; |
3562 TaskQueueStats totals; |
3559 const uint n = workers()->total_workers(); |
3563 const uint n = num_task_queues(); |
3560 for (uint i = 0; i < n; ++i) { |
3564 for (uint i = 0; i < n; ++i) { |
3561 st->print("%3u ", i); task_queue(i)->stats.print(st); st->cr(); |
3565 st->print("%3u ", i); task_queue(i)->stats.print(st); st->cr(); |
3562 totals += task_queue(i)->stats; |
3566 totals += task_queue(i)->stats; |
3563 } |
3567 } |
3564 st->print_raw("tot "); totals.print(st); st->cr(); |
3568 st->print_raw("tot "); totals.print(st); st->cr(); |
3565 |
3569 |
3566 DEBUG_ONLY(totals.verify()); |
3570 DEBUG_ONLY(totals.verify()); |
3567 } |
3571 } |
3568 |
3572 |
3569 void G1CollectedHeap::reset_taskqueue_stats() { |
3573 void G1CollectedHeap::reset_taskqueue_stats() { |
3570 const uint n = workers()->total_workers(); |
3574 const uint n = num_task_queues(); |
3571 for (uint i = 0; i < n; ++i) { |
3575 for (uint i = 0; i < n; ++i) { |
3572 task_queue(i)->stats.reset(); |
3576 task_queue(i)->stats.reset(); |
3573 } |
3577 } |
3574 } |
3578 } |
3575 #endif // TASKQUEUE_STATS |
3579 #endif // TASKQUEUE_STATS |