115 }
116 }
117
118 void CollectedHeap::print_heap_after_gc() {
119 if (PrintHeapAtGC) {
120 Universe::print_heap_after_gc();
121 }
122 if (_gc_heap_log != NULL) {
123 _gc_heap_log->log_heap_after();
124 }
125 }
126
127 void CollectedHeap::register_nmethod(nmethod* nm) {
128 assert_locked_or_safepoint(CodeCache_lock);
129 }
130
131 void CollectedHeap::unregister_nmethod(nmethod* nm) {
132 assert_locked_or_safepoint(CodeCache_lock);
133 }
134
135 void CollectedHeap::trace_heap(GCWhen::Type when, GCTracer* gc_tracer) {
136 const GCHeapSummary& heap_summary = create_heap_summary();
137 gc_tracer->report_gc_heap_summary(when, heap_summary);
138
139 const MetaspaceSummary& metaspace_summary = create_metaspace_summary();
140 gc_tracer->report_metaspace_summary(when, metaspace_summary);
141 }
142
143 void CollectedHeap::trace_heap_before_gc(GCTracer* gc_tracer) {
144 trace_heap(GCWhen::BeforeGC, gc_tracer);
145 }
146
147 void CollectedHeap::trace_heap_after_gc(GCTracer* gc_tracer) {
148 trace_heap(GCWhen::AfterGC, gc_tracer);
149 }
150
151 // Memory state functions.
152
153
154 CollectedHeap::CollectedHeap() : _n_par_threads(0)
155 {
156 const size_t max_len = size_t(arrayOopDesc::max_array_length(T_INT));
157 const size_t elements_per_word = HeapWordSize / sizeof(jint);
158 _filler_array_max_size = align_object_size(filler_array_hdr_size() +
159 max_len / elements_per_word);
160
161 _barrier_set = NULL;
162 _is_gc_active = false;
163 _total_collections = _total_full_collections = 0;
164 _gc_cause = _gc_lastcause = GCCause::_no_gc;
165 NOT_PRODUCT(_promotion_failure_alot_count = 0;)
166 NOT_PRODUCT(_promotion_failure_alot_gc_number = 0;)
167
|
115 }
116 }
117
118 void CollectedHeap::print_heap_after_gc() {
119 if (PrintHeapAtGC) {
120 Universe::print_heap_after_gc();
121 }
122 if (_gc_heap_log != NULL) {
123 _gc_heap_log->log_heap_after();
124 }
125 }
126
127 void CollectedHeap::register_nmethod(nmethod* nm) {
128 assert_locked_or_safepoint(CodeCache_lock);
129 }
130
131 void CollectedHeap::unregister_nmethod(nmethod* nm) {
132 assert_locked_or_safepoint(CodeCache_lock);
133 }
134
135 void CollectedHeap::trace_heap(GCWhen::Type when, const GCTracer* gc_tracer) {
136 const GCHeapSummary& heap_summary = create_heap_summary();
137 gc_tracer->report_gc_heap_summary(when, heap_summary);
138
139 const MetaspaceSummary& metaspace_summary = create_metaspace_summary();
140 gc_tracer->report_metaspace_summary(when, metaspace_summary);
141 }
142
143 void CollectedHeap::trace_heap_before_gc(const GCTracer* gc_tracer) {
144 trace_heap(GCWhen::BeforeGC, gc_tracer);
145 }
146
147 void CollectedHeap::trace_heap_after_gc(const GCTracer* gc_tracer) {
148 trace_heap(GCWhen::AfterGC, gc_tracer);
149 }
150
151 // Memory state functions.
152
153
154 CollectedHeap::CollectedHeap() : _n_par_threads(0)
155 {
156 const size_t max_len = size_t(arrayOopDesc::max_array_length(T_INT));
157 const size_t elements_per_word = HeapWordSize / sizeof(jint);
158 _filler_array_max_size = align_object_size(filler_array_hdr_size() +
159 max_len / elements_per_word);
160
161 _barrier_set = NULL;
162 _is_gc_active = false;
163 _total_collections = _total_full_collections = 0;
164 _gc_cause = _gc_lastcause = GCCause::_no_gc;
165 NOT_PRODUCT(_promotion_failure_alot_count = 0;)
166 NOT_PRODUCT(_promotion_failure_alot_gc_number = 0;)
167
|