#include <iostream>
+
+static const double msecsInSec = 1000000;
+
+static void timeFrameFetch(Trace::Loader &loader, unsigned frameIdx)
+{
+ long long t1, t2;
+ std::vector<Trace::Call*> frame;
+
+ t1 = OS::GetTime();
+ frame = loader.frame(frameIdx);
+ t2 = OS::GetTime();
+ std::cout << "Time to fetch the frame["
+ << frameIdx
+ << "] size "
+ << frame.size()
+ << " is = "
+ << (t2 - t1)/msecsInSec
+ << " secs "<<std::endl;
+}
+
+
int main(int argc, char **argv)
{
int i;
for (i = 1; i < argc; ++i) {
Trace::Loader loader;
- const double msecsInSec = 1000000;
long long t1 = OS::GetTime();
if (!loader.open(argv[i])) {
<< loader.numberOfCallsInFrame(lastFrame)
<< std::endl;
- t1 = OS::GetTime();
- std::vector<Trace::Call*> frame = loader.frame(
- loader.numberOfFrames()/2);
- t2 = OS::GetTime();
- std::cout << "Time to fetch a frame size "
- << frame.size()
- << " is = "
- << (t2 - t1)/msecsInSec
- << " secs "<<std::endl;
-
- t1 = OS::GetTime();
- frame = loader.frame(
- 0);
- t2 = OS::GetTime();
- std::cout << "Time to fetch a frame size "
- << frame.size()
- << " is = "
- << (t2 - t1)/msecsInSec
- << " secs "<<std::endl;
-
- t1 = OS::GetTime();
- frame = loader.frame(loader.numberOfFrames() - 1);
- t2 = OS::GetTime();
- std::cout << "Time to fetch a frame size "
- << frame.size()
- << " is = "
- << (t2 - t1)/msecsInSec
- << " secs "<<std::endl;
+ unsigned biggestFrameIdx = 0;
+ unsigned maxFrameSize = 0;
+ for (unsigned i = 0; i < loader.numberOfFrames(); ++i) {
+ if (loader.numberOfCallsInFrame(i) > maxFrameSize) {
+ maxFrameSize = loader.numberOfCallsInFrame(i);
+ biggestFrameIdx = i;
+ }
+ }
+ timeFrameFetch(loader, loader.numberOfFrames()/2);
+ timeFrameFetch(loader, 0);
+ timeFrameFetch(loader, loader.numberOfFrames() - 1);
+ timeFrameFetch(loader, biggestFrameIdx);
}
return 0;