557 }
558
559 void ParallelScavengeHeap::print_on_error(outputStream* st) const {
560 this->CollectedHeap::print_on_error(st);
561
562 if (UseParallelOldGC) {
563 st->cr();
564 PSParallelCompact::print_on_error(st);
565 }
566 }
567
568 void ParallelScavengeHeap::gc_threads_do(ThreadClosure* tc) const {
569 PSScavenge::gc_task_manager()->threads_do(tc);
570 }
571
572 void ParallelScavengeHeap::print_gc_threads_on(outputStream* st) const {
573 PSScavenge::gc_task_manager()->print_threads_on(st);
574 }
575
576 void ParallelScavengeHeap::print_tracing_info() const {
577 if (TraceYoungGenTime) {
578 double time = PSScavenge::accumulated_time()->seconds();
579 tty->print_cr("[Accumulated GC generation 0 time %3.7f secs]", time);
580 }
581 if (TraceOldGenTime) {
582 double time = UseParallelOldGC ? PSParallelCompact::accumulated_time()->seconds() : PSMarkSweep::accumulated_time()->seconds();
583 tty->print_cr("[Accumulated GC generation 1 time %3.7f secs]", time);
584 }
585
586 AdaptiveSizePolicyOutput::print();
587 }
588
589
590 void ParallelScavengeHeap::verify(VerifyOption option /* ignored */) {
591 // Why do we need the total_collections()-filter below?
592 if (total_collections() > 0) {
593 log_debug(gc, verify)("Tenured");
594 old_gen()->verify();
595
596 log_debug(gc, verify)("Eden");
597 young_gen()->verify();
598 }
599 }
600
601 void ParallelScavengeHeap::trace_heap(GCWhen::Type when, const GCTracer* gc_tracer) {
602 const PSHeapSummary& heap_summary = create_ps_heap_summary();
603 gc_tracer->report_gc_heap_summary(when, heap_summary);
604
605 const MetaspaceSummary& metaspace_summary = create_metaspace_summary();
606 gc_tracer->report_metaspace_summary(when, metaspace_summary);
|
557 }
558
559 void ParallelScavengeHeap::print_on_error(outputStream* st) const {
560 this->CollectedHeap::print_on_error(st);
561
562 if (UseParallelOldGC) {
563 st->cr();
564 PSParallelCompact::print_on_error(st);
565 }
566 }
567
568 void ParallelScavengeHeap::gc_threads_do(ThreadClosure* tc) const {
569 PSScavenge::gc_task_manager()->threads_do(tc);
570 }
571
572 void ParallelScavengeHeap::print_gc_threads_on(outputStream* st) const {
573 PSScavenge::gc_task_manager()->print_threads_on(st);
574 }
575
576 void ParallelScavengeHeap::print_tracing_info() const {
577 AdaptiveSizePolicyOutput::print();
578 log_debug(gc, heap, exit)("Accumulated young generation GC time %3.7f secs", PSScavenge::accumulated_time()->seconds());
579 log_debug(gc, heap, exit)("Accumulated old generation GC time %3.7f secs",
580 UseParallelOldGC ? PSParallelCompact::accumulated_time()->seconds() : PSMarkSweep::accumulated_time()->seconds());
581 }
582
583
584 void ParallelScavengeHeap::verify(VerifyOption option /* ignored */) {
585 // Why do we need the total_collections()-filter below?
586 if (total_collections() > 0) {
587 log_debug(gc, verify)("Tenured");
588 old_gen()->verify();
589
590 log_debug(gc, verify)("Eden");
591 young_gen()->verify();
592 }
593 }
594
595 void ParallelScavengeHeap::trace_heap(GCWhen::Type when, const GCTracer* gc_tracer) {
596 const PSHeapSummary& heap_summary = create_ps_heap_summary();
597 gc_tracer->report_gc_heap_summary(when, heap_summary);
598
599 const MetaspaceSummary& metaspace_summary = create_metaspace_summary();
600 gc_tracer->report_metaspace_summary(when, metaspace_summary);
|