src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp

Print this page




3400   if (PrintCMSStatistics != 0) {
3401     _collector->resetYields();
3402   }
3403   if (PrintGCDetails && PrintGCTimeStamps) {
3404     gclog_or_tty->date_stamp(PrintGCDateStamps);
3405     gclog_or_tty->stamp();
3406     gclog_or_tty->print_cr(": [%s-concurrent-%s-start]",
3407       _collector->cmsGen()->short_name(), _phase);
3408   }
3409   _collector->resetTimer();
3410   _wallclock.start();
3411   _collector->startTimer();
3412 }
3413 
3414 CMSPhaseAccounting::~CMSPhaseAccounting() {
3415   assert(_wallclock.is_active(), "Wall clock should not have stopped");
3416   _collector->stopTimer();
3417   _wallclock.stop();
3418   if (PrintGCDetails) {
3419     gclog_or_tty->date_stamp(PrintGCDateStamps);
3420     gclog_or_tty->stamp(PrintGCTimeStamps);
3421     gclog_or_tty->print("[%s-concurrent-%s: %3.3f/%3.3f secs]",
3422                  _collector->cmsGen()->short_name(),
3423                  _phase, _collector->timerValue(), _wallclock.seconds());
3424     if (_print_cr) {
3425       gclog_or_tty->print_cr("");
3426     }
3427     if (PrintCMSStatistics != 0) {
3428       gclog_or_tty->print_cr(" (CMS-concurrent-%s yielded %d times)", _phase,
3429                     _collector->yields());
3430     }
3431   }
3432 }
3433 
3434 // CMS work
3435 
3436 // Checkpoint the roots into this generation from outside
3437 // this generation. [Note this initial checkpoint need only
3438 // be approximate -- we'll do a catch up phase subsequently.]
3439 void CMSCollector::checkpointRootsInitial(bool asynch) {
3440   assert(_collectorState == InitialMarking, "Wrong collector state");
3441   check_correct_thread_executing();




3400   if (PrintCMSStatistics != 0) {
3401     _collector->resetYields();
3402   }
3403   if (PrintGCDetails && PrintGCTimeStamps) {
3404     gclog_or_tty->date_stamp(PrintGCDateStamps);
3405     gclog_or_tty->stamp();
3406     gclog_or_tty->print_cr(": [%s-concurrent-%s-start]",
3407       _collector->cmsGen()->short_name(), _phase);
3408   }
3409   _collector->resetTimer();
3410   _wallclock.start();
3411   _collector->startTimer();
3412 }
3413 
3414 CMSPhaseAccounting::~CMSPhaseAccounting() {
3415   assert(_wallclock.is_active(), "Wall clock should not have stopped");
3416   _collector->stopTimer();
3417   _wallclock.stop();
3418   if (PrintGCDetails) {
3419     gclog_or_tty->date_stamp(PrintGCDateStamps);
3420     gclog_or_tty->stamp();
3421     gclog_or_tty->print(" [%s-concurrent-%s: %3.3f/%3.3f secs]",
3422                  _collector->cmsGen()->short_name(),
3423                  _phase, _collector->timerValue(), _wallclock.seconds());
3424     if (_print_cr) {
3425       gclog_or_tty->print_cr("");
3426     }
3427     if (PrintCMSStatistics != 0) {
3428       gclog_or_tty->print_cr(" (CMS-concurrent-%s yielded %d times)", _phase,
3429                     _collector->yields());
3430     }
3431   }
3432 }
3433 
3434 // CMS work
3435 
3436 // Checkpoint the roots into this generation from outside
3437 // this generation. [Note this initial checkpoint need only
3438 // be approximate -- we'll do a catch up phase subsequently.]
3439 void CMSCollector::checkpointRootsInitial(bool asynch) {
3440   assert(_collectorState == InitialMarking, "Wrong collector state");
3441   check_correct_thread_executing();