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;
25 for (unsigned i = 0; i < frame.size(); ++i) {
31 int main(int argc, char **argv)
35 for (i = 1; i < argc; ++i) {
38 long long t1 = OS::GetTime();
39 if (!loader.open(argv[i])) {
40 std::cerr << "error: failed to open " << argv[i] << "\n";
43 long long t2 = OS::GetTime();
44 std::cout << "Time to scan file = "<< (t2 - t1)/msecsInSec
45 << " secs "<<std::endl;
47 std::cout << "Number of frames = "
48 << loader.numberOfFrames()
50 std::cout << "Number of calls in frame 0 = "
51 << loader.numberOfCallsInFrame(0)
53 int lastFrame = loader.numberOfFrames() - 1;
54 std::cout << "Number of calls in frame "
56 << loader.numberOfCallsInFrame(lastFrame)
59 unsigned biggestFrameIdx = 0;
60 unsigned maxFrameSize = 0;
61 for (unsigned i = 0; i < loader.numberOfFrames(); ++i) {
62 if (loader.numberOfCallsInFrame(i) > maxFrameSize) {
63 maxFrameSize = loader.numberOfCallsInFrame(i);
68 timeFrameFetch(loader, loader.numberOfFrames()/2);
69 timeFrameFetch(loader, 0);
70 timeFrameFetch(loader, loader.numberOfFrames() - 1);
71 timeFrameFetch(loader, biggestFrameIdx);