< prev index next >

src/hotspot/share/gc/g1/g1CollectedHeap.cpp

Print this page

1637   CPUTimeCounters::create_counter(CPUTimeGroups::CPUTimeType::gc_parallel_workers);
1638   CPUTimeCounters::create_counter(CPUTimeGroups::CPUTimeType::gc_conc_mark);
1639   CPUTimeCounters::create_counter(CPUTimeGroups::CPUTimeType::gc_conc_refine);
1640   CPUTimeCounters::create_counter(CPUTimeGroups::CPUTimeType::gc_conc_refine_control);
1641   CPUTimeCounters::create_counter(CPUTimeGroups::CPUTimeType::gc_service);
1642 
1643   G1InitLogger::print();
1644 
1645   FullGCForwarding::initialize(_reserved);
1646 
1647   return JNI_OK;
1648 }
1649 
1650 void G1CollectedHeap::stop() {
1651   assert_not_at_safepoint();
1652   // Stop all concurrent threads. We do this to make sure these threads
1653   // do not continue to execute and access resources (e.g. logging)
1654   // that are destroyed during shutdown.
1655   _cr->stop();
1656   _service_thread->stop();



1657   _cm->stop();
1658 }
1659 
1660 void G1CollectedHeap::safepoint_synchronize_begin() {
1661   SuspendibleThreadSet::synchronize();
1662 
1663   _last_synchronized_start = os::elapsed_counter();
1664 }
1665 
1666 void G1CollectedHeap::safepoint_synchronize_end() {
1667   jlong now = os::elapsed_counter();
1668   jlong synchronize_duration = now - _last_synchronized_start;
1669 
1670   if (_last_safepoint_refinement_epoch == _refinement_epoch) {
1671     _yield_duration_in_refinement_epoch += synchronize_duration;
1672   } else {
1673     _last_refinement_epoch_start = now;
1674     _last_safepoint_refinement_epoch = _refinement_epoch;
1675     _yield_duration_in_refinement_epoch = 0;
1676   }

1637   CPUTimeCounters::create_counter(CPUTimeGroups::CPUTimeType::gc_parallel_workers);
1638   CPUTimeCounters::create_counter(CPUTimeGroups::CPUTimeType::gc_conc_mark);
1639   CPUTimeCounters::create_counter(CPUTimeGroups::CPUTimeType::gc_conc_refine);
1640   CPUTimeCounters::create_counter(CPUTimeGroups::CPUTimeType::gc_conc_refine_control);
1641   CPUTimeCounters::create_counter(CPUTimeGroups::CPUTimeType::gc_service);
1642 
1643   G1InitLogger::print();
1644 
1645   FullGCForwarding::initialize(_reserved);
1646 
1647   return JNI_OK;
1648 }
1649 
1650 void G1CollectedHeap::stop() {
1651   assert_not_at_safepoint();
1652   // Stop all concurrent threads. We do this to make sure these threads
1653   // do not continue to execute and access resources (e.g. logging)
1654   // that are destroyed during shutdown.
1655   _cr->stop();
1656   _service_thread->stop();
1657   VM_G1StopMarking op;
1658   VMThread::execute(&op);
1659 
1660   _cm->stop();
1661 }
1662 
1663 void G1CollectedHeap::safepoint_synchronize_begin() {
1664   SuspendibleThreadSet::synchronize();
1665 
1666   _last_synchronized_start = os::elapsed_counter();
1667 }
1668 
1669 void G1CollectedHeap::safepoint_synchronize_end() {
1670   jlong now = os::elapsed_counter();
1671   jlong synchronize_duration = now - _last_synchronized_start;
1672 
1673   if (_last_safepoint_refinement_epoch == _refinement_epoch) {
1674     _yield_duration_in_refinement_epoch += synchronize_duration;
1675   } else {
1676     _last_refinement_epoch_start = now;
1677     _last_safepoint_refinement_epoch = _refinement_epoch;
1678     _yield_duration_in_refinement_epoch = 0;
1679   }
< prev index next >