1145 #if INCLUDE_ALL_GCS
1146 if (UseConcMarkSweepGC) {
1147 workers()->print_worker_threads_on(st);
1148 ConcurrentMarkSweepThread::print_all_on(st);
1149 }
1150 #endif // INCLUDE_ALL_GCS
1151 }
1152
1153 void GenCollectedHeap::print_on_error(outputStream* st) const {
1154 this->CollectedHeap::print_on_error(st);
1155
1156 #if INCLUDE_ALL_GCS
1157 if (UseConcMarkSweepGC) {
1158 st->cr();
1159 CMSCollector::print_on_error(st);
1160 }
1161 #endif // INCLUDE_ALL_GCS
1162 }
1163
1164 void GenCollectedHeap::print_tracing_info() const {
1165 if (TraceYoungGenTime) {
1166 _young_gen->print_summary_info();
1167 }
1168 if (TraceOldGenTime) {
1169 _old_gen->print_summary_info();
1170 }
1171 }
1172
1173 void GenCollectedHeap::print_heap_change(size_t young_prev_used, size_t old_prev_used) const {
1174 log_info(gc, heap)("%s: " SIZE_FORMAT "K->" SIZE_FORMAT "K(" SIZE_FORMAT "K)",
1175 _young_gen->short_name(), young_prev_used / K, _young_gen->used() /K, _young_gen->capacity() /K);
1176 log_info(gc, heap)("%s: " SIZE_FORMAT "K->" SIZE_FORMAT "K(" SIZE_FORMAT "K)",
1177 _old_gen->short_name(), old_prev_used / K, _old_gen->used() /K, _old_gen->capacity() /K);
1178 }
1179
1180 class GenGCPrologueClosure: public GenCollectedHeap::GenClosure {
1181 private:
1182 bool _full;
1183 public:
1184 void do_generation(Generation* gen) {
1185 gen->gc_prologue(_full);
1186 }
1187 GenGCPrologueClosure(bool full) : _full(full) {};
1188 };
1189
1190 void GenCollectedHeap::gc_prologue(bool full) {
|
1145 #if INCLUDE_ALL_GCS
1146 if (UseConcMarkSweepGC) {
1147 workers()->print_worker_threads_on(st);
1148 ConcurrentMarkSweepThread::print_all_on(st);
1149 }
1150 #endif // INCLUDE_ALL_GCS
1151 }
1152
1153 void GenCollectedHeap::print_on_error(outputStream* st) const {
1154 this->CollectedHeap::print_on_error(st);
1155
1156 #if INCLUDE_ALL_GCS
1157 if (UseConcMarkSweepGC) {
1158 st->cr();
1159 CMSCollector::print_on_error(st);
1160 }
1161 #endif // INCLUDE_ALL_GCS
1162 }
1163
1164 void GenCollectedHeap::print_tracing_info() const {
1165 _young_gen->print_summary_info();
1166 _old_gen->print_summary_info();
1167 }
1168
1169 void GenCollectedHeap::print_heap_change(size_t young_prev_used, size_t old_prev_used) const {
1170 log_info(gc, heap)("%s: " SIZE_FORMAT "K->" SIZE_FORMAT "K(" SIZE_FORMAT "K)",
1171 _young_gen->short_name(), young_prev_used / K, _young_gen->used() /K, _young_gen->capacity() /K);
1172 log_info(gc, heap)("%s: " SIZE_FORMAT "K->" SIZE_FORMAT "K(" SIZE_FORMAT "K)",
1173 _old_gen->short_name(), old_prev_used / K, _old_gen->used() /K, _old_gen->capacity() /K);
1174 }
1175
1176 class GenGCPrologueClosure: public GenCollectedHeap::GenClosure {
1177 private:
1178 bool _full;
1179 public:
1180 void do_generation(Generation* gen) {
1181 gen->gc_prologue(_full);
1182 }
1183 GenGCPrologueClosure(bool full) : _full(full) {};
1184 };
1185
1186 void GenCollectedHeap::gc_prologue(bool full) {
|