633 // refs discovery is over the entire heap, not just this generation |
633 // refs discovery is over the entire heap, not just this generation |
634 ReferenceProcessorSpanMutator |
634 ReferenceProcessorSpanMutator |
635 x(ref_processor(), gch->reserved_region()); |
635 x(ref_processor(), gch->reserved_region()); |
636 |
636 |
637 STWGCTimer* gc_timer = GenMarkSweep::gc_timer(); |
637 STWGCTimer* gc_timer = GenMarkSweep::gc_timer(); |
638 gc_timer->register_gc_start(os::elapsed_counter()); |
638 gc_timer->register_gc_start(); |
639 |
639 |
640 SerialOldTracer* gc_tracer = GenMarkSweep::gc_tracer(); |
640 SerialOldTracer* gc_tracer = GenMarkSweep::gc_tracer(); |
641 gc_tracer->report_gc_start(gch->gc_cause(), gc_timer->gc_start()); |
641 gc_tracer->report_gc_start(gch->gc_cause(), gc_timer->gc_start()); |
642 |
642 |
643 GenMarkSweep::invoke_at_safepoint(_level, ref_processor(), clear_all_soft_refs); |
643 GenMarkSweep::invoke_at_safepoint(_level, ref_processor(), clear_all_soft_refs); |
644 |
644 |
645 gc_timer->register_gc_end(os::elapsed_counter()); |
645 gc_timer->register_gc_end(); |
646 |
646 |
647 gc_tracer->report_gc_end(os::elapsed_counter(), gc_timer->time_partitions()); |
647 gc_tracer->report_gc_end(gc_timer->gc_end(), gc_timer->time_partitions()); |
648 |
648 |
649 SpecializationStats::print(); |
649 SpecializationStats::print(); |
650 } |
650 } |
651 |
651 |
652 HeapWord* |
652 HeapWord* |