65 for (
int i = 0; i < m_depth; i++)
67 m_deltas.push_back(0);
75 uint64_t now = GetTime() * 1000;
76 uint64_t delta = now - m_lastMs;
80 m_runningAverage -= (double)m_deltas.front() / (double)m_depth;
81 m_runningAverage += (double)delta / (
double)m_depth;
84 m_deltas.push_back(delta);
89 return m_runningAverage;
94 return m_runningAverage==0 ? 0 : 1000./m_runningAverage;
101 for (
auto i : m_deltas)
103 dev += pow(i - m_runningAverage, 2);
106 return sqrt(dev / m_depth);
109 static double GetTime()
113 static uint64_t freq = 0;
114 QueryPerformanceCounter(
reinterpret_cast<LARGE_INTEGER*
>(&tm));
117 QueryPerformanceFrequency(
reinterpret_cast<LARGE_INTEGER*
>(&freq));
121 clock_gettime(CLOCK_REALTIME,&t);
122 double d =
static_cast<double>(t.tv_nsec) / 1E9f;
131 std::deque<uint64_t> m_deltas;
132 double m_runningAverage;
Clock that measures rate at which it is called; windowed average.
Definition: HzClock.h:52