3231 PrintRSetsClosure cl("Printing All RSets");; |
3231 PrintRSetsClosure cl("Printing All RSets");; |
3232 heap_region_iterate(&cl); |
3232 heap_region_iterate(&cl); |
3233 } |
3233 } |
3234 #endif // PRODUCT |
3234 #endif // PRODUCT |
3235 |
3235 |
|
3236 G1HeapSummary G1CollectedHeap::create_g1_heap_summary() { |
|
3237 YoungList* young_list = heap()->young_list(); |
|
3238 |
|
3239 size_t eden_used_bytes = young_list->eden_used_bytes(); |
|
3240 size_t survivor_used_bytes = young_list->survivor_used_bytes(); |
|
3241 |
|
3242 size_t eden_capacity_bytes = |
|
3243 (g1_policy()->young_list_target_length() * HeapRegion::GrainBytes) - survivor_used_bytes; |
|
3244 |
|
3245 VirtualSpaceSummary heap_summary = create_heap_space_summary(); |
|
3246 return G1HeapSummary(heap_summary, used(), eden_used_bytes, eden_capacity_bytes, survivor_used_bytes); |
|
3247 } |
|
3248 |
|
3249 void G1CollectedHeap::trace_heap(GCWhen::Type when, const GCTracer* gc_tracer) { |
|
3250 const G1HeapSummary& heap_summary = create_g1_heap_summary(); |
|
3251 gc_tracer->report_gc_heap_summary(when, heap_summary); |
|
3252 |
|
3253 const MetaspaceSummary& metaspace_summary = create_metaspace_summary(); |
|
3254 gc_tracer->report_metaspace_summary(when, metaspace_summary); |
|
3255 } |
|
3256 |
|
3257 |
3236 G1CollectedHeap* G1CollectedHeap::heap() { |
3258 G1CollectedHeap* G1CollectedHeap::heap() { |
3237 CollectedHeap* heap = Universe::heap(); |
3259 CollectedHeap* heap = Universe::heap(); |
3238 assert(heap != NULL, "Uninitialized access to G1CollectedHeap::heap()"); |
3260 assert(heap != NULL, "Uninitialized access to G1CollectedHeap::heap()"); |
3239 assert(heap->kind() == CollectedHeap::G1CollectedHeap, "Not a G1CollectedHeap"); |
3261 assert(heap->kind() == CollectedHeap::G1CollectedHeap, "Not a G1CollectedHeap"); |
3240 return (G1CollectedHeap*)heap; |
3262 return (G1CollectedHeap*)heap; |