289 void EpsilonHeap::do_full_collection(bool clear_all_soft_refs) {
290 collect(gc_cause());
291 }
292
293 void EpsilonHeap::safe_object_iterate(ObjectClosure *cl) {
294 _space->safe_object_iterate(cl);
295 }
296
297 void EpsilonHeap::print_on(outputStream *st) const {
298 st->print_cr("Epsilon Heap");
299
300 // Cast away constness:
301 ((VirtualSpace)_virtual_space).print_on(st);
302
303 st->print_cr("Allocation space:");
304 _space->print_on(st);
305
306 MetaspaceUtils::print_on(st);
307 }
308
309 bool EpsilonHeap::print_location(outputStream* st, address addr) const {
310 return BlockLocationPrinter<EpsilonHeap>::print_location(st, addr);
311 }
312
313 void EpsilonHeap::print_tracing_info() const {
314 print_heap_info(used());
315 print_metaspace_info();
316 }
317
318 void EpsilonHeap::print_heap_info(size_t used) const {
319 size_t reserved = max_capacity();
320 size_t committed = capacity();
321
322 if (reserved != 0) {
323 log_info(gc)("Heap: " SIZE_FORMAT "%s reserved, " SIZE_FORMAT "%s (%.2f%%) committed, "
324 SIZE_FORMAT "%s (%.2f%%) used",
325 byte_size_in_proper_unit(reserved), proper_unit_for_byte_size(reserved),
326 byte_size_in_proper_unit(committed), proper_unit_for_byte_size(committed),
327 committed * 100.0 / reserved,
328 byte_size_in_proper_unit(used), proper_unit_for_byte_size(used),
329 used * 100.0 / reserved);
|
289 void EpsilonHeap::do_full_collection(bool clear_all_soft_refs) {
290 collect(gc_cause());
291 }
292
293 void EpsilonHeap::safe_object_iterate(ObjectClosure *cl) {
294 _space->safe_object_iterate(cl);
295 }
296
297 void EpsilonHeap::print_on(outputStream *st) const {
298 st->print_cr("Epsilon Heap");
299
300 // Cast away constness:
301 ((VirtualSpace)_virtual_space).print_on(st);
302
303 st->print_cr("Allocation space:");
304 _space->print_on(st);
305
306 MetaspaceUtils::print_on(st);
307 }
308
309 bool EpsilonHeap::print_location(outputStream* st, void* addr) const {
310 return BlockLocationPrinter<EpsilonHeap>::print_location(st, addr);
311 }
312
313 void EpsilonHeap::print_tracing_info() const {
314 print_heap_info(used());
315 print_metaspace_info();
316 }
317
318 void EpsilonHeap::print_heap_info(size_t used) const {
319 size_t reserved = max_capacity();
320 size_t committed = capacity();
321
322 if (reserved != 0) {
323 log_info(gc)("Heap: " SIZE_FORMAT "%s reserved, " SIZE_FORMAT "%s (%.2f%%) committed, "
324 SIZE_FORMAT "%s (%.2f%%) used",
325 byte_size_in_proper_unit(reserved), proper_unit_for_byte_size(reserved),
326 byte_size_in_proper_unit(committed), proper_unit_for_byte_size(committed),
327 committed * 100.0 / reserved,
328 byte_size_in_proper_unit(used), proper_unit_for_byte_size(used),
329 used * 100.0 / reserved);
|