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 }
|
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 trace_metaspace_chunk_free_list(when, gc_tracer);
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 }
|