1 #include "trace_loader.hpp"
7 static const double msecsInSec = 1000000;
9 static void timeFrameFetch(Trace::Loader &loader, unsigned frameIdx)
12 std::vector<Trace::Call*> frame;
15 frame = loader.frame(frameIdx);
17 std::cout << "Time to fetch the frame["
22 << (t2 - t1)/msecsInSec
23 << " secs "<<std::endl;
27 int main(int argc, char **argv)
31 for (i = 1; i < argc; ++i) {
34 long long t1 = OS::GetTime();
35 if (!loader.open(argv[i])) {
36 std::cerr << "error: failed to open " << argv[i] << "\n";
39 long long t2 = OS::GetTime();
40 std::cout << "Time to scan file = "<< (t2 - t1)/msecsInSec
41 << " secs "<<std::endl;
43 std::cout << "Number of frames = "
44 << loader.numberOfFrames()
46 std::cout << "Number of calls in frame 0 = "
47 << loader.numberOfCallsInFrame(0)
49 int lastFrame = loader.numberOfFrames() - 1;
50 std::cout << "Number of calls in frame "
52 << loader.numberOfCallsInFrame(lastFrame)
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);
64 timeFrameFetch(loader, loader.numberOfFrames()/2);
65 timeFrameFetch(loader, 0);
66 timeFrameFetch(loader, loader.numberOfFrames() - 1);
67 timeFrameFetch(loader, biggestFrameIdx);