290 log_trace(gc, heap)(" aggressive shrinking: _capacity_at_prologue: %.1fK capacity_after_gc: %.1fK expansion_for_promotion: %.1fK shrink_bytes: %.1fK", 291 capacity_after_gc / (double) K, 292 _capacity_at_prologue / (double) K, 293 expansion_for_promotion / (double) K, 294 shrink_bytes / (double) K); 295 } 296 // Don't shrink unless it's significant 297 if (shrink_bytes >= _min_heap_delta_bytes) { 298 shrink(shrink_bytes); 299 } 300 } 301 302 // Currently nothing to do. 303 void CardGeneration::prepare_for_verify() {} 304 305 void CardGeneration::space_iterate(SpaceClosure* blk, 306 bool usedOnly) { 307 blk->do_space(space()); 308 } 309 310 void CardGeneration::younger_refs_iterate(OopsInGenClosure* blk, uint n_threads) { 311 blk->set_generation(this); 312 younger_refs_in_space_iterate(space(), blk, n_threads); 313 blk->reset_generation(); 314 } | 290 log_trace(gc, heap)(" aggressive shrinking: _capacity_at_prologue: %.1fK capacity_after_gc: %.1fK expansion_for_promotion: %.1fK shrink_bytes: %.1fK", 291 capacity_after_gc / (double) K, 292 _capacity_at_prologue / (double) K, 293 expansion_for_promotion / (double) K, 294 shrink_bytes / (double) K); 295 } 296 // Don't shrink unless it's significant 297 if (shrink_bytes >= _min_heap_delta_bytes) { 298 shrink(shrink_bytes); 299 } 300 } 301 302 // Currently nothing to do. 303 void CardGeneration::prepare_for_verify() {} 304 305 void CardGeneration::space_iterate(SpaceClosure* blk, 306 bool usedOnly) { 307 blk->do_space(space()); 308 } 309 310 void CardGeneration::younger_refs_iterate(OopIterateClosure* blk, uint n_threads) { 311 // Apply "cl->do_oop" to (the address of) (exactly) all the ref fields in 312 // "sp" that point into younger generations. 313 // The iteration is only over objects allocated at the start of the 314 // iterations; objects allocated as a result of applying the closure are 315 // not included. 316 317 HeapWord* gen_boundary = reserved().start(); 318 _rs->younger_refs_in_space_iterate(space(), gen_boundary, blk, n_threads); 319 } |