< prev index next >
src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp
Print this page
rev 9733 : [mq]: webrev.00
rev 9734 : [mq]: webrev.01
*** 2740,2752 ****
--- 2740,2754 ----
_collector(collector), _title(title), _trace_time(title) {
_collector->resetYields();
_collector->resetTimer();
_collector->startTimer();
+ _collector->gc_timer_cm()->register_gc_concurrent_start(title);
}
CMSPhaseAccounting::~CMSPhaseAccounting() {
+ _collector->gc_timer_cm()->register_gc_concurrent_end();
_collector->stopTimer();
log_debug(gc)("Concurrent active time: %.3fms", TimeHelper::counter_to_seconds(_collector->timerTicks()));
log_trace(gc)(" (CMS %s yielded %d times)", _title, _collector->yields());
}
*** 5481,5490 ****
--- 5483,5493 ----
assert(_collectorState == Idling, "The state should only change"
" because the foreground collector has finished the collection");
return;
}
+ {
// Clear the mark bitmap (no grey objects to start with)
// for the next cycle.
GCTraceCPUTime tcpu;
CMSPhaseAccounting cmspa(this, "Concurrent Reset");
*** 5521,5530 ****
--- 5524,5534 ----
// Because only the full (i.e., concurrent mode failure) collections
// are being measured for gc overhead limits, clean the "near" flag
// and count.
size_policy()->reset_gc_overhead_limit_count();
_collectorState = Idling;
+ }
register_gc_end();
}
// Same as above but for STW paths
< prev index next >