101 }
102
103 void CollectedHeap::print_heap_before_gc() {
104 if (PrintHeapAtGC) {
105 Universe::print_heap_before_gc();
106 }
107 if (_gc_heap_log != NULL) {
108 _gc_heap_log->log_heap_before();
109 }
110 }
111
112 void CollectedHeap::print_heap_after_gc() {
113 if (PrintHeapAtGC) {
114 Universe::print_heap_after_gc();
115 }
116 if (_gc_heap_log != NULL) {
117 _gc_heap_log->log_heap_after();
118 }
119 }
120
121 void CollectedHeap::trace_heap(GCWhen::Type when, GCTracer* gc_tracer) {
122 const GCHeapSummary& heap_summary = create_heap_summary();
123 const MetaspaceSummary& metaspace_summary = create_metaspace_summary();
124 gc_tracer->report_gc_heap_summary(when, heap_summary, metaspace_summary);
125 }
126
127 void CollectedHeap::trace_heap_before_gc(GCTracer* gc_tracer) {
128 trace_heap(GCWhen::BeforeGC, gc_tracer);
129 }
130
131 void CollectedHeap::trace_heap_after_gc(GCTracer* gc_tracer) {
132 trace_heap(GCWhen::AfterGC, gc_tracer);
133 }
134
135 // Memory state functions.
136
137
138 CollectedHeap::CollectedHeap() : _n_par_threads(0)
139 {
140 const size_t max_len = size_t(arrayOopDesc::max_array_length(T_INT));
|
101 }
102
103 void CollectedHeap::print_heap_before_gc() {
104 if (PrintHeapAtGC) {
105 Universe::print_heap_before_gc();
106 }
107 if (_gc_heap_log != NULL) {
108 _gc_heap_log->log_heap_before();
109 }
110 }
111
112 void CollectedHeap::print_heap_after_gc() {
113 if (PrintHeapAtGC) {
114 Universe::print_heap_after_gc();
115 }
116 if (_gc_heap_log != NULL) {
117 _gc_heap_log->log_heap_after();
118 }
119 }
120
121 void CollectedHeap::register_nmethod(nmethod* nm) {
122 assert(SafepointSynchronize::is_at_safepoint() || CodeCache_lock->is_locked(),
123 err_msg("Must be at safepoint or code cache locked (code cache locked: %d)", CodeCache_lock->is_locked()));
124 }
125
126 void CollectedHeap::unregister_nmethod(nmethod* nm) {
127 assert(SafepointSynchronize::is_at_safepoint() || CodeCache_lock->is_locked(),
128 err_msg("Must be at safepoint or code cache locked (code cache locked: %d)", CodeCache_lock->is_locked()));
129 }
130
131 void CollectedHeap::trace_heap(GCWhen::Type when, GCTracer* gc_tracer) {
132 const GCHeapSummary& heap_summary = create_heap_summary();
133 const MetaspaceSummary& metaspace_summary = create_metaspace_summary();
134 gc_tracer->report_gc_heap_summary(when, heap_summary, metaspace_summary);
135 }
136
137 void CollectedHeap::trace_heap_before_gc(GCTracer* gc_tracer) {
138 trace_heap(GCWhen::BeforeGC, gc_tracer);
139 }
140
141 void CollectedHeap::trace_heap_after_gc(GCTracer* gc_tracer) {
142 trace_heap(GCWhen::AfterGC, gc_tracer);
143 }
144
145 // Memory state functions.
146
147
148 CollectedHeap::CollectedHeap() : _n_par_threads(0)
149 {
150 const size_t max_len = size_t(arrayOopDesc::max_array_length(T_INT));
|