private void OnStatusTimerEvent(object sender, ElapsedEventArgs e) { long now = AccurateStopWatch.GetTimeStamp(); if (lastStatusTime > 0) { long timeSpan = now - lastStatusTime; float deltOpCount = (opsCount - lastOpsCount); float frameRate = (float)(deltOpCount / (timeSpan * AccurateStopWatch.OneOverFreq)); if (intervalMaxTime > maxTime) { maxTime = intervalMaxTime; } opStatus.Ops = frameRate; opStatus.Load = (float)sumOpTime / timeSpan * 100.0f; opStatus.MissedFrames = missedFrames; opStatus.AvrOpTime = (float)(sumOpTime / deltOpCount * AccurateStopWatch.OneOverFreq); opStatus.MaxTime = (float)(maxTime * AccurateStopWatch.OneOverFreq); opStatus.IntervalMaxTime = (float)(intervalMaxTime * AccurateStopWatch.OneOverFreq); // Report status. if (statusStringDelegate != null) { statusStringDelegate(opStatus); } } lastStatusTime = now; lastOpsCount = opsCount; sumOpTime = 0; intervalMaxTime = 0; }
public void FinishedOperation() { long deltTime = AccurateStopWatch.GetTimeStamp() - lastOpStartTime; sumOpTime += deltTime; if (deltTime > intervalMaxTime) { intervalMaxTime = deltTime; } opsCount++; }
public void StartOperation() { lastOpStartTime = AccurateStopWatch.GetTimeStamp(); // lastOpStartTime = DateTime.Now.Ticks; // lastOpStartTime = Environment.TickCount; }