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(); |