Esempio n. 1
0
    BSONObj CurOp::infoNoauth() {
        BSONObjBuilder b;
        b.append("opid", _opNum);
        bool a = _active && _start;
        b.append("active", a);
        if ( _lockType ) {
            char str[2];
            str[0] = _lockType;
            str[1] = 0;
            b.append("lockType" , str);
        }
        b.append("waitingForLock" , _waitingForLock );

        if( a ) {
            b.append("secs_running", elapsedSeconds() );
        }

        b.append( "op" , opToString( _op ) );

        b.append("ns", _ns);

        _query.append( b , "query" );

        if( !_remote.empty() ) {
            b.append("client", _remote.toString());
        }

        if ( _client ) {
            b.append( "desc" , _client->desc() );
            if ( _client->_threadId.size() ) 
                b.append( "threadId" , _client->_threadId );
            if ( _client->_connectionId )
                b.appendNumber( "connectionId" , _client->_connectionId );
        }
        
        if ( ! _message.empty() ) {
            if ( _progressMeter.isActive() ) {
                StringBuilder buf;
                buf << _message.toString() << " " << _progressMeter.toString();
                b.append( "msg" , buf.str() );
                BSONObjBuilder sub( b.subobjStart( "progress" ) );
                sub.appendNumber( "done" , (long long)_progressMeter.done() );
                sub.appendNumber( "total" , (long long)_progressMeter.total() );
                sub.done();
            }
            else {
                b.append( "msg" , _message.toString() );
            }
        }

        if( killed() ) 
            b.append("killed", true);
        
        b.append( "numYields" , _numYields );

        return b.obj();
    }
Esempio n. 2
0
File: curop.cpp Progetto: Axv2/mongo
    BSONObj CurOp::info() {
        BSONObjBuilder b;
        b.append("opid", _opNum);
        bool a = _active && _start;
        b.append("active", a);

        if( a ) {
            b.append("secs_running", elapsedSeconds() );
        }

        b.append( "op" , opToString( _op ) );

        b.append("ns", _ns);

        if (_op == dbInsert) {
            _query.append(b, "insert");
        }
        else {
            _query.append(b , "query");
        }

        if( !_remote.empty() ) {
            b.append("client", _remote.toString());
        }

        if ( _client ) {
            b.append( "desc" , _client->desc() );
            if ( _client->_threadId.size() )
                b.append( "threadId" , _client->_threadId );
            if ( _client->_connectionId )
                b.appendNumber( "connectionId" , _client->_connectionId );
            _client->_ls.reportState(b);
        }

        if ( ! _message.empty() ) {
            if ( _progressMeter.isActive() ) {
                StringBuilder buf;
                buf << _message.toString() << " " << _progressMeter.toString();
                b.append( "msg" , buf.str() );
                BSONObjBuilder sub( b.subobjStart( "progress" ) );
                sub.appendNumber( "done" , (long long)_progressMeter.done() );
                sub.appendNumber( "total" , (long long)_progressMeter.total() );
                sub.done();
            }
            else {
                b.append( "msg" , _message.toString() );
            }
        }

        if( killPending() )
            b.append("killPending", true);

        b.append( "numYields" , _numYields );
        b.append( "lockStats" , _lockStat.report() );

        return b.obj();
    }
Esempio n. 3
0
inline double TimeTracker::stop() 
{
  if(!started)
    {
      return 0;
    }
  else if(paused)
    {
      return elapsedSeconds();
    }
  else
    {
      clock_t cur_time = clock();
      offset += cur_time - start_time;
      start_time = 0;
      paused = true;
      return elapsedSeconds();
    }
}
Esempio n. 4
0
    void CurOp::reportState(BSONObjBuilder* builder) {
        builder->append("opid", _opNum);
        bool a = _active && _start;
        builder->append("active", a);

        if( a ) {
            builder->append("secs_running", elapsedSeconds() );
            builder->append("microsecs_running", static_cast<long long int>(elapsedMicros()) );
        }

        builder->append( "op" , opToString( _op ) );

        // Fill out "ns" from our namespace member (and if it's not available, fall back to the
        // OpDebug namespace member).
        builder->append("ns", !_ns.empty() ? _ns.toString() : _debug.ns.toString());

        if (_op == dbInsert) {
            _query.append(*builder, "insert");
        }
        else {
            _query.append(*builder, "query");
        }

        if ( !debug().planSummary.empty() ) {
            builder->append( "planSummary" , debug().planSummary.toString() );
        }

        if( !_remote.empty() ) {
            builder->append("client", _remote.toString());
        }

        if ( ! _message.empty() ) {
            if ( _progressMeter.isActive() ) {
                StringBuilder buf;
                buf << _message.toString() << " " << _progressMeter.toString();
                builder->append( "msg" , buf.str() );
                BSONObjBuilder sub( builder->subobjStart( "progress" ) );
                sub.appendNumber( "done" , (long long)_progressMeter.done() );
                sub.appendNumber( "total" , (long long)_progressMeter.total() );
                sub.done();
            }
            else {
                builder->append( "msg" , _message.toString() );
            }
        }

        if( killPending() )
            builder->append("killPending", true);

        if (!getGlobalEnvironment()->getGlobalStorageEngine()->supportsDocLocking())
            builder->append( "numYields" , _numYields );
    }
Esempio n. 5
0
    void CurOp::reportState(BSONObjBuilder* builder) {
        builder->append("opid", _opNum);
        bool a = _active && _start;
        builder->append("active", a);

        if( a ) {
            builder->append("secs_running", elapsedSeconds() );
            builder->append("microsecs_running", static_cast<long long int>(elapsedMicros()) );
        }

        builder->append( "op" , opToString( _op ) );

        builder->append("ns", _ns.toString());

        if (_op == dbInsert) {
            _query.append(*builder, "insert");
        }
        else {
            _query.append(*builder, "query");
        }

        if ( !debug().planSummary.empty() ) {
            builder->append( "planSummary" , debug().planSummary.toString() );
        }

        if( !_remote.empty() ) {
            builder->append("client", _remote.toString());
        }

        if ( ! _message.empty() ) {
            if ( _progressMeter.isActive() ) {
                StringBuilder buf;
                buf << _message.toString() << " " << _progressMeter.toString();
                builder->append( "msg" , buf.str() );
                BSONObjBuilder sub( builder->subobjStart( "progress" ) );
                sub.appendNumber( "done" , (long long)_progressMeter.done() );
                sub.appendNumber( "total" , (long long)_progressMeter.total() );
                sub.done();
            }
            else {
                builder->append( "msg" , _message.toString() );
            }
        }

        if( killPending() )
            builder->append("killPending", true);

        builder->append( "numYields" , _numYields );
        builder->append( "lockStats" , _lockStat.report() );
    }
Esempio n. 6
0
void PerfectNumberLoop::run() {
	clock_t timer;
	long number = 2;
	startTimer(timer);

	for (; ; number++) {
		if (isPerfectNumber(number)) {
			printPerfectNumber(number);
			startTimer(timer);
		}
		if (timeIsDue(elapsedSeconds(timer)))
			break;
	}
	printLastNumber(number);
}
Esempio n. 7
0
inline double TimeTracker::start()
{
  if(paused) 
    {
      start_time = clock();
      paused = false;
      return elapsedSeconds();
    }
  else
    {
      offset = 0;
      start_time = clock();
      started = true;
      return 0;
    }
}
Esempio n. 8
0
bool FPSTimer::update()
{
    m_FrameCount++;
    
    if(elapsedMilliseconds() >= m_RefreshRate)
    {
        m_CurrentFPS = static_cast<double>(m_FrameCount) / elapsedSeconds();
        
        m_FrameCount = 0;
        start();
        
        return true;
    }
    
    return false;
}
Esempio n. 9
0
    BSONObj CurOp::infoNoauth() {
        BSONObjBuilder b;
        b.append("opid", _opNum);
        bool a = _active && _start;
        b.append("active", a);
        if ( _lockType )
            b.append("lockType" , _lockType > 0 ? "write" : "read"  );
        b.append("waitingForLock" , _waitingForLock );
        
        if( a ){
            b.append("secs_running", elapsedSeconds() );
        }
        
        b.append( "op" , opToString( _op ) );
        
        b.append("ns", _ns);
        
        if( haveQuery() ) {
            b.append("query", query());
        }
        // b.append("inLock",  ??
        stringstream clientStr;
        clientStr << _remote.toString();
        b.append("client", clientStr.str());

        if ( _client )
            b.append( "desc" , _client->desc() );
        
        if ( ! _message.empty() ){
            if ( _progressMeter.isActive() ){
                StringBuilder buf(128);
                buf << _message << " " << _progressMeter.toString();
                b.append( "msg" , buf.str() );
            }
            else {
                b.append( "msg" , _message );
            }
        }

        return b.obj();
    }
Esempio n. 10
0
std::string AppTimer::elapsedWithColons(){
    auto secs = elapsedSeconds();
    auto mins = 0, hours = 0;
    
    if (secs > 3600){
        hours = secs / 3600;
        secs = secs - (hours * 3600);
    }
    
    if (secs > 60){
        mins = secs / 60;
        secs = secs - (mins * 60);
    }
    
    std::stringstream ss;
    
    ss << std::setfill('0');
    ss << std::setw(4) << hours << ":";
    ss << std::setw(2) << mins << ":";
    ss << std::setw(2) << static_cast<long int>(secs) << "";
    
    return ss.str();
}
Esempio n. 11
0
double Timer::elapsedSeconds(const Communicator& comm) const
{
    return comm.broadcast(comm.mainProcNo(), elapsedSeconds());
}
Esempio n. 12
0
    std::shared_ptr<FrameBuffer> Frame::renderFrame(bool verifyCommit)
    {
      if (verifyCommit) {
        Node::traverse(VerifyNodes{});
        commit();
      }

      traverse("render");

      auto fb1Node = child("frameBuffer").nodeAs<FrameBuffer>();
      auto fb2Node = child("navFrameBuffer").nodeAs<FrameBuffer>();
      // use nav FB?
      auto fbNode = (numAccumulatedFrames == 0 &&
          fb1Node->child("size").valueAs<vec2i>() !=
          fb2Node->child("size").valueAs<vec2i>()) ?
        fb2Node : fb1Node;

      auto rendererNode = child("renderer").nodeAs<Renderer>();

      const bool accumBudgetReached = frameAccumulationLimit >= 0 &&
        numAccumulatedFrames >= frameAccumulationLimit;

      const float varianceThreshold =
        rendererNode->child("varianceThreshold").valueAs<float>();
      const float lastVariance = numAccumulatedFrames < 2 ? inf
        : rendererNode->getLastVariance();
      const bool varianceReached = varianceThreshold > 0.f &&
          lastVariance <= varianceThreshold;

      if (accumBudgetReached || varianceReached) {
        etaSeconds = elapsedSeconds();
        return nullptr;
      }

      if (numAccumulatedFrames == 0)
        accumulationTimer.start();

      rendererNode->renderFrame(fbNode);

      numAccumulatedFrames++;
      accumulationTimer.stop();

      if (frameAccumulationLimit >= 0)
        etaAccumulation = frameAccumulationLimit * elapsedSeconds()
          / numAccumulatedFrames;

      if (varianceThreshold > 0.f) {
        const float currentVariance = rendererNode->getLastVariance();
        if (numAccumulatedFrames == 4) { // need stable variance estimate
          firstVariance = currentVariance;
          firstSeconds = elapsedSeconds();
        }
        // update estimate only on even frames (when variance was updated)
        if (((numAccumulatedFrames&1)==0) && numAccumulatedFrames >= 6)
          etaVariance = firstSeconds + (elapsedSeconds() - firstSeconds)
            / (1.f/sqr(currentVariance) - 1.f/sqr(firstVariance))
            / sqr(varianceThreshold);
      }

      // whichever is earlier
      etaSeconds = std::min(etaVariance, etaAccumulation);
      return fbNode;
    }
Esempio n. 13
0
inline std::string TimeTracker::asString() const
{
  return timeAsString(elapsedSeconds());
}