]> git.cworth.org Git - apitrace/blob - loadertest.cpp
Load the last few calls.
[apitrace] / loadertest.cpp
1 #include "trace_loader.hpp"
2 #include "os.hpp"
3
4 #include <iostream>
5
6
7 static const double msecsInSec = 1000000;
8
9 static void timeFrameFetch(Trace::Loader &loader, unsigned frameIdx)
10 {
11     long long t1, t2;
12     std::vector<Trace::Call*> frame;
13
14     t1 = OS::GetTime();
15     frame = loader.frame(frameIdx);
16     t2 = OS::GetTime();
17     std::cout << "Time to fetch the frame["
18               << frameIdx
19               << "] size "
20               << frame.size()
21               << " is = "
22               << (t2 - t1)/msecsInSec
23               << " secs "<<std::endl;
24 }
25
26
27 int main(int argc, char **argv)
28 {
29     int i;
30
31     for (i = 1; i < argc; ++i) {
32         Trace::Loader loader;
33
34         long long t1 = OS::GetTime();
35         if (!loader.open(argv[i])) {
36             std::cerr << "error: failed to open " << argv[i] << "\n";
37             return 1;
38         }
39         long long t2 = OS::GetTime();
40         std::cout << "Time to scan file = "<< (t2 - t1)/msecsInSec
41                   << " secs "<<std::endl;
42
43         std::cout << "Number of frames = "
44                   << loader.numberOfFrames()
45                   << std::endl;
46         std::cout << "Number of calls in frame 0 = "
47                   << loader.numberOfCallsInFrame(0)
48                   << std::endl;
49         int lastFrame = loader.numberOfFrames() - 1;
50         std::cout << "Number of calls in frame "
51                   << lastFrame << " = "
52                   << loader.numberOfCallsInFrame(lastFrame)
53                   << std::endl;
54
55         unsigned biggestFrameIdx = 0;
56         unsigned maxFrameSize = 0;
57         for (unsigned i = 0; i < loader.numberOfFrames(); ++i) {
58             if (loader.numberOfCallsInFrame(i) > maxFrameSize) {
59                 maxFrameSize = loader.numberOfCallsInFrame(i);
60                 biggestFrameIdx = i;
61             }
62         }
63
64         timeFrameFetch(loader, loader.numberOfFrames()/2);
65         timeFrameFetch(loader, 0);
66         timeFrameFetch(loader, loader.numberOfFrames() - 1);
67         timeFrameFetch(loader, biggestFrameIdx);
68     }
69
70     return 0;
71 }
72