]> git.cworth.org Git - apitrace/blobdiff - loadertest.cpp
Switch the gui to the on-demand-loader.
[apitrace] / loadertest.cpp
index 48bdac9574ed2bb4ff6dbe6206333359513e54d0..397187ac42bfddfb4c146e507411d390112738f9 100644 (file)
@@ -1,7 +1,29 @@
 #include "trace_loader.hpp"
+#include "os.hpp"
 
 #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;
@@ -9,10 +31,14 @@ int main(int argc, char **argv)
     for (i = 1; i < argc; ++i) {
         Trace::Loader loader;
 
+        long long t1 = OS::GetTime();
         if (!loader.open(argv[i])) {
             std::cerr << "error: failed to open " << argv[i] << "\n";
             return 1;
         }
+        long long t2 = OS::GetTime();
+        std::cout << "Time to scan file = "<< (t2 - t1)/msecsInSec
+                  << " secs "<<std::endl;
 
         std::cout << "Number of frames = "
                   << loader.numberOfFrames()
@@ -26,15 +52,20 @@ int main(int argc, char **argv)
                   << loader.numberOfCallsInFrame(lastFrame)
                   << std::endl;
 
-
-        std::vector<Trace::Call*> frame = loader.frame(
-                 0);
-        std::vector<Trace::Call*>::const_iterator itr;
-        for (itr = frame.begin(); itr != frame.end(); ++itr) {
-           (*itr)->dump(std::cout, true);
+        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;
 }