< prev index next >
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
Print this page
rev 8913 : Add EventG1HeapSummary support.
@@ -3570,10 +3570,32 @@
PrintRSetsClosure cl("Printing All RSets");;
heap_region_iterate(&cl);
}
#endif // PRODUCT
+G1HeapSummary G1CollectedHeap::create_g1_heap_summary() {
+
+ size_t eden_used_bytes = _young_list->eden_used_bytes();
+ size_t survivor_used_bytes = _young_list->survivor_used_bytes();
+ size_t heap_used = Heap_lock->owned_by_self() ? used() : used_unlocked();
+
+ size_t eden_capacity_bytes =
+ (g1_policy()->young_list_target_length() * HeapRegion::GrainBytes) - survivor_used_bytes;
+
+ VirtualSpaceSummary heap_summary = create_heap_space_summary();
+ return G1HeapSummary(heap_summary, heap_used, eden_used_bytes,
+ eden_capacity_bytes, survivor_used_bytes, num_regions());
+}
+
+void G1CollectedHeap::trace_heap(GCWhen::Type when, GCTracer* gc_tracer) {
+ const G1HeapSummary& heap_summary = create_g1_heap_summary();
+ gc_tracer->report_gc_heap_summary(when, heap_summary);
+
+ const MetaspaceSummary& metaspace_summary = create_metaspace_summary();
+ gc_tracer->report_metaspace_summary(when, metaspace_summary);
+}
+
G1CollectedHeap* G1CollectedHeap::heap() {
assert(_sh->kind() == CollectedHeap::G1CollectedHeap,
"not a garbage-first heap");
return _g1h;
}
< prev index next >