2775 tty->cr(); 2776 } 2777 }; 2778 2779 void G1CollectedHeap::print_cset_rsets() { 2780 PrintRSetsClosure cl("Printing CSet RSets"); 2781 collection_set_iterate(&cl); 2782 } 2783 2784 void G1CollectedHeap::print_all_rsets() { 2785 PrintRSetsClosure cl("Printing All RSets");; 2786 heap_region_iterate(&cl); 2787 } 2788 #endif // PRODUCT 2789 2790 G1HeapSummary G1CollectedHeap::create_g1_heap_summary() { 2791 YoungList* young_list = heap()->young_list(); 2792 2793 size_t eden_used_bytes = young_list->eden_used_bytes(); 2794 size_t survivor_used_bytes = young_list->survivor_used_bytes(); 2795 2796 size_t eden_capacity_bytes = 2797 (g1_policy()->young_list_target_length() * HeapRegion::GrainBytes) - survivor_used_bytes; 2798 2799 VirtualSpaceSummary heap_summary = create_heap_space_summary(); 2800 return G1HeapSummary(heap_summary, (Heap_lock->owned_by_self() ? used() : used_unlocked()), 2801 eden_used_bytes, eden_capacity_bytes, survivor_used_bytes, num_regions()); 2802 } 2803 2804 G1EvacSummary G1CollectedHeap::create_g1_evac_summary(G1EvacStats* stats) { 2805 return G1EvacSummary(stats->allocated(), stats->wasted(), stats->undo_wasted(), 2806 stats->unused(), stats->used(), stats->region_end_waste(), 2807 stats->regions_filled(), stats->direct_allocated(), 2808 stats->failure_used(), stats->failure_waste()); 2809 } 2810 2811 void G1CollectedHeap::trace_heap(GCWhen::Type when, const GCTracer* gc_tracer) { 2812 const G1HeapSummary& heap_summary = create_g1_heap_summary(); 2813 gc_tracer->report_gc_heap_summary(when, heap_summary); 2814 2815 const MetaspaceSummary& metaspace_summary = create_metaspace_summary(); 2816 gc_tracer->report_metaspace_summary(when, metaspace_summary); 2817 } 2818 2819 G1CollectedHeap* G1CollectedHeap::heap() { 2820 CollectedHeap* heap = Universe::heap(); 2821 assert(heap != NULL, "Uninitialized access to G1CollectedHeap::heap()"); | 2775 tty->cr(); 2776 } 2777 }; 2778 2779 void G1CollectedHeap::print_cset_rsets() { 2780 PrintRSetsClosure cl("Printing CSet RSets"); 2781 collection_set_iterate(&cl); 2782 } 2783 2784 void G1CollectedHeap::print_all_rsets() { 2785 PrintRSetsClosure cl("Printing All RSets");; 2786 heap_region_iterate(&cl); 2787 } 2788 #endif // PRODUCT 2789 2790 G1HeapSummary G1CollectedHeap::create_g1_heap_summary() { 2791 YoungList* young_list = heap()->young_list(); 2792 2793 size_t eden_used_bytes = young_list->eden_used_bytes(); 2794 size_t survivor_used_bytes = young_list->survivor_used_bytes(); 2795 size_t heap_used = Heap_lock->owned_by_self() ? used() : used_unlocked(); 2796 2797 size_t eden_capacity_bytes = 2798 (g1_policy()->young_list_target_length() * HeapRegion::GrainBytes) - survivor_used_bytes; 2799 2800 VirtualSpaceSummary heap_summary = create_heap_space_summary(); 2801 return G1HeapSummary(heap_summary, heap_used, eden_used_bytes, 2802 eden_capacity_bytes, survivor_used_bytes, num_regions()); 2803 } 2804 2805 G1EvacSummary G1CollectedHeap::create_g1_evac_summary(G1EvacStats* stats) { 2806 return G1EvacSummary(stats->allocated(), stats->wasted(), stats->undo_wasted(), 2807 stats->unused(), stats->used(), stats->region_end_waste(), 2808 stats->regions_filled(), stats->direct_allocated(), 2809 stats->failure_used(), stats->failure_waste()); 2810 } 2811 2812 void G1CollectedHeap::trace_heap(GCWhen::Type when, const GCTracer* gc_tracer) { 2813 const G1HeapSummary& heap_summary = create_g1_heap_summary(); 2814 gc_tracer->report_gc_heap_summary(when, heap_summary); 2815 2816 const MetaspaceSummary& metaspace_summary = create_metaspace_summary(); 2817 gc_tracer->report_metaspace_summary(when, metaspace_summary); 2818 } 2819 2820 G1CollectedHeap* G1CollectedHeap::heap() { 2821 CollectedHeap* heap = Universe::heap(); 2822 assert(heap != NULL, "Uninitialized access to G1CollectedHeap::heap()"); |