< prev index next >

src/hotspot/share/gc/shared/genCollectedHeap.cpp

Print this page




1276   log_info(gc, heap)("%s: " SIZE_FORMAT "K->" SIZE_FORMAT "K("  SIZE_FORMAT "K)",
1277                      _young_gen->short_name(), young_prev_used / K, _young_gen->used() /K, _young_gen->capacity() /K);
1278   log_info(gc, heap)("%s: " SIZE_FORMAT "K->" SIZE_FORMAT "K("  SIZE_FORMAT "K)",
1279                      _old_gen->short_name(), old_prev_used / K, _old_gen->used() /K, _old_gen->capacity() /K);
1280 }
1281 
1282 class GenGCPrologueClosure: public GenCollectedHeap::GenClosure {
1283  private:
1284   bool _full;
1285  public:
1286   void do_generation(Generation* gen) {
1287     gen->gc_prologue(_full);
1288   }
1289   GenGCPrologueClosure(bool full) : _full(full) {};
1290 };
1291 
1292 void GenCollectedHeap::gc_prologue(bool full) {
1293   assert(InlineCacheBuffer::is_empty(), "should have cleaned up ICBuffer");
1294 
1295   // Fill TLAB's and such
1296   CollectedHeap::accumulate_statistics_all_tlabs();
1297   ensure_parsability(true);   // retire TLABs
1298 
1299   // Walk generations
1300   GenGCPrologueClosure blk(full);
1301   generation_iterate(&blk, false);  // not old-to-young.
1302 };
1303 
1304 class GenGCEpilogueClosure: public GenCollectedHeap::GenClosure {
1305  private:
1306   bool _full;
1307  public:
1308   void do_generation(Generation* gen) {
1309     gen->gc_epilogue(_full);
1310   }
1311   GenGCEpilogueClosure(bool full) : _full(full) {};
1312 };
1313 
1314 void GenCollectedHeap::gc_epilogue(bool full) {
1315 #if COMPILER2_OR_JVMCI
1316   assert(DerivedPointerTable::is_empty(), "derived pointer present");




1276   log_info(gc, heap)("%s: " SIZE_FORMAT "K->" SIZE_FORMAT "K("  SIZE_FORMAT "K)",
1277                      _young_gen->short_name(), young_prev_used / K, _young_gen->used() /K, _young_gen->capacity() /K);
1278   log_info(gc, heap)("%s: " SIZE_FORMAT "K->" SIZE_FORMAT "K("  SIZE_FORMAT "K)",
1279                      _old_gen->short_name(), old_prev_used / K, _old_gen->used() /K, _old_gen->capacity() /K);
1280 }
1281 
1282 class GenGCPrologueClosure: public GenCollectedHeap::GenClosure {
1283  private:
1284   bool _full;
1285  public:
1286   void do_generation(Generation* gen) {
1287     gen->gc_prologue(_full);
1288   }
1289   GenGCPrologueClosure(bool full) : _full(full) {};
1290 };
1291 
1292 void GenCollectedHeap::gc_prologue(bool full) {
1293   assert(InlineCacheBuffer::is_empty(), "should have cleaned up ICBuffer");
1294 
1295   // Fill TLAB's and such

1296   ensure_parsability(true);   // retire TLABs
1297 
1298   // Walk generations
1299   GenGCPrologueClosure blk(full);
1300   generation_iterate(&blk, false);  // not old-to-young.
1301 };
1302 
1303 class GenGCEpilogueClosure: public GenCollectedHeap::GenClosure {
1304  private:
1305   bool _full;
1306  public:
1307   void do_generation(Generation* gen) {
1308     gen->gc_epilogue(_full);
1309   }
1310   GenGCEpilogueClosure(bool full) : _full(full) {};
1311 };
1312 
1313 void GenCollectedHeap::gc_epilogue(bool full) {
1314 #if COMPILER2_OR_JVMCI
1315   assert(DerivedPointerTable::is_empty(), "derived pointer present");


< prev index next >