summaryrefslogtreecommitdiff
path: root/src/timing_stats.cc
blob: 85b95de5ef14f535d8d11bbfae8235f80ad1a0e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "timing_stats.h"

#include <iostream>

using namespace std;

map<string, TimerInfo> Timer::stats;

Timer::Timer(const string& timername) : start_t(clock()), cur(stats[timername]) {}

Timer::~Timer() {
  ++cur.calls;
  const clock_t end_t = clock();
  const double elapsed = (end_t - start_t) / 1000000.0;
  cur.total_time += elapsed;
}

void Timer::Summarize() {
  for (map<string, TimerInfo>::iterator it = stats.begin(); it != stats.end(); ++it) {
    cerr << it->first << ": " << it->second.total_time << " secs (" << it->second.calls << " calls)\n";
  }
  stats.clear();
}