< prev index next >

src/hotspot/share/gc/z/zDriver.cpp

Print this page
rev 60421 : [mq]: 8248401-stefank-review


 364   ZDriverGCScope(GCCause::Cause cause) :
 365       _gc_id(),
 366       _gc_cause(cause),
 367       _gc_cause_setter(ZCollectedHeap::heap(), cause),
 368       _timer(ZPhaseCycle),
 369       _tracer() {
 370     // Update statistics
 371     ZStatCycle::at_start();
 372   }
 373 
 374   ~ZDriverGCScope() {
 375     // Calculate boost factor
 376     const double boost_factor = (double)ZHeap::heap()->nconcurrent_worker_threads() /
 377                                 (double)ZHeap::heap()->nconcurrent_no_boost_worker_threads();
 378 
 379     // Update statistics
 380     ZStatCycle::at_end(_gc_cause, boost_factor);
 381 
 382     // Update data used by soft reference policy
 383     Universe::update_heap_info_at_gc();



 384   }
 385 };
 386 
 387 void ZDriver::gc(GCCause::Cause cause) {
 388   ZDriverGCScope scope(cause);
 389 
 390   // Phase 1: Pause Mark Start
 391   pause_mark_start();
 392 
 393   // Phase 2: Concurrent Mark
 394   concurrent_mark();
 395 
 396   // Phase 3: Pause Mark End
 397   while (!pause_mark_end()) {
 398     // Phase 3.5: Concurrent Mark Continue
 399     concurrent_mark_continue();
 400   }
 401 
 402   // Phase 4: Concurrent Process Non-Strong References
 403   concurrent_process_non_strong_references();




 364   ZDriverGCScope(GCCause::Cause cause) :
 365       _gc_id(),
 366       _gc_cause(cause),
 367       _gc_cause_setter(ZCollectedHeap::heap(), cause),
 368       _timer(ZPhaseCycle),
 369       _tracer() {
 370     // Update statistics
 371     ZStatCycle::at_start();
 372   }
 373 
 374   ~ZDriverGCScope() {
 375     // Calculate boost factor
 376     const double boost_factor = (double)ZHeap::heap()->nconcurrent_worker_threads() /
 377                                 (double)ZHeap::heap()->nconcurrent_no_boost_worker_threads();
 378 
 379     // Update statistics
 380     ZStatCycle::at_end(_gc_cause, boost_factor);
 381 
 382     // Update data used by soft reference policy
 383     Universe::update_heap_info_at_gc();
 384 
 385     // Signal that we have completed a visit to all live objects
 386     Universe::heap()->next_whole_heap_examined();
 387   }
 388 };
 389 
 390 void ZDriver::gc(GCCause::Cause cause) {
 391   ZDriverGCScope scope(cause);
 392 
 393   // Phase 1: Pause Mark Start
 394   pause_mark_start();
 395 
 396   // Phase 2: Concurrent Mark
 397   concurrent_mark();
 398 
 399   // Phase 3: Pause Mark End
 400   while (!pause_mark_end()) {
 401     // Phase 3.5: Concurrent Mark Continue
 402     concurrent_mark_continue();
 403   }
 404 
 405   // Phase 4: Concurrent Process Non-Strong References
 406   concurrent_process_non_strong_references();


< prev index next >