4 #include "trace_reader.h"
6 static const int kMaxHistEntries = 256;
7 static const int kMaxHistEntries2 = kMaxHistEntries / 2;
8 int hist[kMaxHistEntries];
9 int underflow, overflow;
11 int main(int argc, char **argv) {
13 fprintf(stderr, "Usage: %s trace_file\n", argv[0]);
17 char *trace_filename = argv[1];
18 TraceReaderBase *trace = new TraceReaderBase;
19 trace->Open(trace_filename);
21 uint64_t prev_bb_num = 0;
22 uint64_t prev_time = 0;
28 if (trace->ReadBB(&event))
30 int bb_diff = event.bb_num - prev_bb_num;
31 //int time_diff = event.time - prev_time;
32 //printf("bb_num: %llu prev: %llu, diff: %d\n",
33 // event.bb_num, prev_bb_num, bb_diff);
34 prev_bb_num = event.bb_num;
35 prev_time = event.time;
37 bb_diff += kMaxHistEntries2;
40 else if (bb_diff >= kMaxHistEntries)
50 for (int ii = 0; ii < kMaxHistEntries; ++ii) {
53 per = 100.0 * hist[ii] / total;
55 sum_per = 100.0 * sum / total;
56 printf(" %4d: %6d %6.2f %6.2f\n", ii - kMaxHistEntries2, hist[ii], per, sum_per);
58 per = 100.0 * underflow / total;
59 printf("under: %6d %6.2f\n", underflow, per);
60 per = 100.0 * overflow / total;
61 printf("over: %6d %6.2f\n", overflow, per);
62 printf("total: %6d\n", total);