]> git.cworth.org Git - apitrace/commitdiff
Time fetch of the biggest frame.
authorZack Rusin <zack@kde.org>
Sat, 3 Sep 2011 20:23:44 +0000 (16:23 -0400)
committerZack Rusin <zack@kde.org>
Sat, 3 Sep 2011 20:23:44 +0000 (16:23 -0400)
loadertest.cpp

index 1b560a30e4add682525e47b83b963eccd0cbc6a6..397187ac42bfddfb4c146e507411d390112738f9 100644 (file)
@@ -3,13 +3,33 @@
 
 #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])) {
@@ -32,35 +52,19 @@ int main(int argc, char **argv)
                   << 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;