< prev index next >

src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp

Print this page
rev 8913 : Add EventG1HeapSummary support.


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) {


< prev index next >