3555 }
3556
3557 ~PrintRSetsClosure() {
3558 gclog_or_tty->print_cr("Occupied Sum: " SIZE_FORMAT, _occupied_sum);
3559 gclog_or_tty->print_cr("========================================");
3560 gclog_or_tty->cr();
3561 }
3562 };
3563
3564 void G1CollectedHeap::print_cset_rsets() {
3565 PrintRSetsClosure cl("Printing CSet RSets");
3566 collection_set_iterate(&cl);
3567 }
3568
3569 void G1CollectedHeap::print_all_rsets() {
3570 PrintRSetsClosure cl("Printing All RSets");;
3571 heap_region_iterate(&cl);
3572 }
3573 #endif // PRODUCT
3574
3575 G1CollectedHeap* G1CollectedHeap::heap() {
3576 assert(_sh->kind() == CollectedHeap::G1CollectedHeap,
3577 "not a garbage-first heap");
3578 return _g1h;
3579 }
3580
3581 void G1CollectedHeap::gc_prologue(bool full /* Ignored */) {
3582 // always_do_update_barrier = false;
3583 assert(InlineCacheBuffer::is_empty(), "should have cleaned up ICBuffer");
3584 // Fill TLAB's and such
3585 accumulate_statistics_all_tlabs();
3586 ensure_parsability(true);
3587
3588 if (G1SummarizeRSetStats && (G1SummarizeRSetStatsPeriod > 0) &&
3589 (total_collections() % G1SummarizeRSetStatsPeriod == 0)) {
3590 g1_rem_set()->print_periodic_summary_info("Before GC RS summary");
3591 }
3592 }
3593
3594 void G1CollectedHeap::gc_epilogue(bool full) {
|
3555 }
3556
3557 ~PrintRSetsClosure() {
3558 gclog_or_tty->print_cr("Occupied Sum: " SIZE_FORMAT, _occupied_sum);
3559 gclog_or_tty->print_cr("========================================");
3560 gclog_or_tty->cr();
3561 }
3562 };
3563
3564 void G1CollectedHeap::print_cset_rsets() {
3565 PrintRSetsClosure cl("Printing CSet RSets");
3566 collection_set_iterate(&cl);
3567 }
3568
3569 void G1CollectedHeap::print_all_rsets() {
3570 PrintRSetsClosure cl("Printing All RSets");;
3571 heap_region_iterate(&cl);
3572 }
3573 #endif // PRODUCT
3574
3575 G1HeapSummary G1CollectedHeap::create_g1_heap_summary() {
3576
3577 size_t eden_used_bytes = _young_list->eden_used_bytes();
3578 size_t survivor_used_bytes = _young_list->survivor_used_bytes();
3579 size_t heap_used = Heap_lock->owned_by_self() ? used() : used_unlocked();
3580
3581 size_t eden_capacity_bytes =
3582 (g1_policy()->young_list_target_length() * HeapRegion::GrainBytes) - survivor_used_bytes;
3583
3584 VirtualSpaceSummary heap_summary = create_heap_space_summary();
3585 return G1HeapSummary(heap_summary, heap_used, eden_used_bytes,
3586 eden_capacity_bytes, survivor_used_bytes, num_regions());
3587 }
3588
3589 void G1CollectedHeap::trace_heap(GCWhen::Type when, GCTracer* gc_tracer) {
3590 const G1HeapSummary& heap_summary = create_g1_heap_summary();
3591 gc_tracer->report_gc_heap_summary(when, heap_summary);
3592
3593 const MetaspaceSummary& metaspace_summary = create_metaspace_summary();
3594 gc_tracer->report_metaspace_summary(when, metaspace_summary);
3595 }
3596
3597 G1CollectedHeap* G1CollectedHeap::heap() {
3598 assert(_sh->kind() == CollectedHeap::G1CollectedHeap,
3599 "not a garbage-first heap");
3600 return _g1h;
3601 }
3602
3603 void G1CollectedHeap::gc_prologue(bool full /* Ignored */) {
3604 // always_do_update_barrier = false;
3605 assert(InlineCacheBuffer::is_empty(), "should have cleaned up ICBuffer");
3606 // Fill TLAB's and such
3607 accumulate_statistics_all_tlabs();
3608 ensure_parsability(true);
3609
3610 if (G1SummarizeRSetStats && (G1SummarizeRSetStatsPeriod > 0) &&
3611 (total_collections() % G1SummarizeRSetStatsPeriod == 0)) {
3612 g1_rem_set()->print_periodic_summary_info("Before GC RS summary");
3613 }
3614 }
3615
3616 void G1CollectedHeap::gc_epilogue(bool full) {
|