143
144 void CollectedHeap::trace_heap(GCWhen::Type when, const GCTracer* gc_tracer) {
145 const GCHeapSummary& heap_summary = create_heap_summary();
146 gc_tracer->report_gc_heap_summary(when, heap_summary);
147
148 const MetaspaceSummary& metaspace_summary = create_metaspace_summary();
149 gc_tracer->report_metaspace_summary(when, metaspace_summary);
150 }
151
152 void CollectedHeap::trace_heap_before_gc(const GCTracer* gc_tracer) {
153 trace_heap(GCWhen::BeforeGC, gc_tracer);
154 }
155
156 void CollectedHeap::trace_heap_after_gc(const GCTracer* gc_tracer) {
157 trace_heap(GCWhen::AfterGC, gc_tracer);
158 }
159
160 // Memory state functions.
161
162
163 CollectedHeap::CollectedHeap() : _n_par_threads(0)
164 {
165 const size_t max_len = size_t(arrayOopDesc::max_array_length(T_INT));
166 const size_t elements_per_word = HeapWordSize / sizeof(jint);
167 _filler_array_max_size = align_object_size(filler_array_hdr_size() +
168 max_len / elements_per_word);
169
170 _barrier_set = NULL;
171 _is_gc_active = false;
172 _total_collections = _total_full_collections = 0;
173 _gc_cause = _gc_lastcause = GCCause::_no_gc;
174 NOT_PRODUCT(_promotion_failure_alot_count = 0;)
175 NOT_PRODUCT(_promotion_failure_alot_gc_number = 0;)
176
177 if (UsePerfData) {
178 EXCEPTION_MARK;
179
180 // create the gc cause jvmstat counters
181 _perf_gc_cause = PerfDataManager::create_string_variable(SUN_GC, "cause",
182 80, GCCause::to_string(_gc_cause), CHECK);
183
184 _perf_gc_lastcause =
|
143
144 void CollectedHeap::trace_heap(GCWhen::Type when, const GCTracer* gc_tracer) {
145 const GCHeapSummary& heap_summary = create_heap_summary();
146 gc_tracer->report_gc_heap_summary(when, heap_summary);
147
148 const MetaspaceSummary& metaspace_summary = create_metaspace_summary();
149 gc_tracer->report_metaspace_summary(when, metaspace_summary);
150 }
151
152 void CollectedHeap::trace_heap_before_gc(const GCTracer* gc_tracer) {
153 trace_heap(GCWhen::BeforeGC, gc_tracer);
154 }
155
156 void CollectedHeap::trace_heap_after_gc(const GCTracer* gc_tracer) {
157 trace_heap(GCWhen::AfterGC, gc_tracer);
158 }
159
160 // Memory state functions.
161
162
163 CollectedHeap::CollectedHeap() {
164 const size_t max_len = size_t(arrayOopDesc::max_array_length(T_INT));
165 const size_t elements_per_word = HeapWordSize / sizeof(jint);
166 _filler_array_max_size = align_object_size(filler_array_hdr_size() +
167 max_len / elements_per_word);
168
169 _barrier_set = NULL;
170 _is_gc_active = false;
171 _total_collections = _total_full_collections = 0;
172 _gc_cause = _gc_lastcause = GCCause::_no_gc;
173 NOT_PRODUCT(_promotion_failure_alot_count = 0;)
174 NOT_PRODUCT(_promotion_failure_alot_gc_number = 0;)
175
176 if (UsePerfData) {
177 EXCEPTION_MARK;
178
179 // create the gc cause jvmstat counters
180 _perf_gc_cause = PerfDataManager::create_string_variable(SUN_GC, "cause",
181 80, GCCause::to_string(_gc_cause), CHECK);
182
183 _perf_gc_lastcause =
|