";
ss << "\n\n" << "
% time in write lock, by 4 sec periods:
\n
";
for ( int i=0; i 4100 )
ss << '(' << e / 1000.0 << "s)";
ss << ' ';
}
ss << "
\n
";
}
void SnapshotThread::run(){
Client::initThread("snapshotthread");
Client& client = cc();
long long numLoops = 0;
const SnapshotData* prev = 0;
while ( ! inShutdown() ){
try {
const SnapshotData* s = statsSnapshots.takeSnapshot();
if ( prev ){
unsigned long long elapsed = s->_created - prev->_created;
if ( cmdLine.cpu ){
SnapshotDelta d( *prev , *s );
log() << "cpu: elapsed:" << (elapsed/1000) <<" writelock: " << (int)(100*d.percentWriteLocked()) << "%" << endl;
}
}
prev = s;
}
catch ( std::exception& e ){
log() << "ERROR in SnapshotThread: " << e.what() << endl;
}
numLoops++;
sleepsecs(4);
}
client.shutdown();
}
Snapshots statsSnapshots;
SnapshotThread snapshotThread;
}