38 if (QueryPerformanceFrequency((LARGE_INTEGER *) &perf_cnt))
40 time_factor=1.0/perf_cnt;
44 inline double GetTime()
48 QueryPerformanceCounter((LARGE_INTEGER *) &time);
49 return (time * time_factor);
73 inline double GetTime()
const
76 clock_gettime(CLOCK_REALTIME, &ts);
77 return (ts.tv_sec*1.0 + ts.tv_nsec * 0.000000001);
89 user_time = Counter::GetTime();
94 user_time = Counter::GetTime();
97 inline double GetTime()
const
99 return Counter::GetTime() - user_time;
107 double min_time, max_time, sum_time, sum2_time;
112 void Reset() { count = 0; min_time = max_time = sum2_time = sum_time = 0.0; }
117 start_time = Counter::GetTime();
122 tmp = Counter::GetTime() - start_time;
127 start_time = Counter::GetTime() - tmp;
132 last = Counter::GetTime() - start_time;
134 sum2_time += last*last;
137 min_time = max_time = last;
149 double Last()
const {
return last; }
150 double Avg()
const {
return sum_time / count; }
151 double Var()
const {
return sum2_time / count - (sum_time / count) * (sum_time / count); }
152 double Min()
const {
return min_time; }
153 double Max()
const {
return max_time; }
154 int Count()
const {
return count; }
156 operator bool()
const {
return count>0; }
160 std::ostream & operator << (std::ostream &,
const Statistic &);
Compute timing statistics.
Definition: timer.h:105