src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp

Print this page
rev 6085 : 8036703: Add trace event with statistics for the metaspace chunk free lists


 648     young_gen()->verify();
 649   }
 650 }
 651 
 652 void ParallelScavengeHeap::print_heap_change(size_t prev_used) {
 653   if (PrintGCDetails && Verbose) {
 654     gclog_or_tty->print(" "  SIZE_FORMAT
 655                         "->" SIZE_FORMAT
 656                         "("  SIZE_FORMAT ")",
 657                         prev_used, used(), capacity());
 658   } else {
 659     gclog_or_tty->print(" "  SIZE_FORMAT "K"
 660                         "->" SIZE_FORMAT "K"
 661                         "("  SIZE_FORMAT "K)",
 662                         prev_used / K, used() / K, capacity() / K);
 663   }
 664 }
 665 
 666 void ParallelScavengeHeap::trace_heap(GCWhen::Type when, GCTracer* gc_tracer) {
 667   const PSHeapSummary& heap_summary = create_ps_heap_summary();


 668   const MetaspaceSummary& metaspace_summary = create_metaspace_summary();
 669   gc_tracer->report_gc_heap_summary(when, heap_summary, metaspace_summary);
 670 }
 671 
 672 ParallelScavengeHeap* ParallelScavengeHeap::heap() {
 673   assert(_psh != NULL, "Uninitialized access to ParallelScavengeHeap::heap()");
 674   assert(_psh->kind() == CollectedHeap::ParallelScavengeHeap, "not a parallel scavenge heap");
 675   return _psh;
 676 }
 677 
 678 // Before delegating the resize to the young generation,
 679 // the reserved space for the young and old generations
 680 // may be changed to accommodate the desired resize.
 681 void ParallelScavengeHeap::resize_young_gen(size_t eden_size,
 682     size_t survivor_size) {
 683   if (UseAdaptiveGCBoundary) {
 684     if (size_policy()->bytes_absorbed_from_eden() != 0) {
 685       size_policy()->reset_bytes_absorbed_from_eden();
 686       return;  // The generation changed size already.
 687     }
 688     gens()->adjust_boundary_for_young_gen_needs(eden_size, survivor_size);
 689   }




 648     young_gen()->verify();
 649   }
 650 }
 651 
 652 void ParallelScavengeHeap::print_heap_change(size_t prev_used) {
 653   if (PrintGCDetails && Verbose) {
 654     gclog_or_tty->print(" "  SIZE_FORMAT
 655                         "->" SIZE_FORMAT
 656                         "("  SIZE_FORMAT ")",
 657                         prev_used, used(), capacity());
 658   } else {
 659     gclog_or_tty->print(" "  SIZE_FORMAT "K"
 660                         "->" SIZE_FORMAT "K"
 661                         "("  SIZE_FORMAT "K)",
 662                         prev_used / K, used() / K, capacity() / K);
 663   }
 664 }
 665 
 666 void ParallelScavengeHeap::trace_heap(GCWhen::Type when, GCTracer* gc_tracer) {
 667   const PSHeapSummary& heap_summary = create_ps_heap_summary();
 668   gc_tracer->report_gc_heap_summary(when, heap_summary);
 669 
 670   const MetaspaceSummary& metaspace_summary = create_metaspace_summary();
 671   gc_tracer->report_metaspace_summary(when, metaspace_summary);
 672 }
 673 
 674 ParallelScavengeHeap* ParallelScavengeHeap::heap() {
 675   assert(_psh != NULL, "Uninitialized access to ParallelScavengeHeap::heap()");
 676   assert(_psh->kind() == CollectedHeap::ParallelScavengeHeap, "not a parallel scavenge heap");
 677   return _psh;
 678 }
 679 
 680 // Before delegating the resize to the young generation,
 681 // the reserved space for the young and old generations
 682 // may be changed to accommodate the desired resize.
 683 void ParallelScavengeHeap::resize_young_gen(size_t eden_size,
 684     size_t survivor_size) {
 685   if (UseAdaptiveGCBoundary) {
 686     if (size_policy()->bytes_absorbed_from_eden() != 0) {
 687       size_policy()->reset_bytes_absorbed_from_eden();
 688       return;  // The generation changed size already.
 689     }
 690     gens()->adjust_boundary_for_young_gen_needs(eden_size, survivor_size);
 691   }