perftest: print summary info at end
authorEvan Martin <martine@danga.com>
Wed, 25 May 2011 17:54:11 +0000 (10:54 -0700)
committerEvan Martin <martine@danga.com>
Fri, 27 May 2011 02:32:17 +0000 (19:32 -0700)
.gitignore
src/parser_perftest.cc

index 71f873d..6514d07 100644 (file)
@@ -4,6 +4,7 @@ TAGS
 /build.ninja
 /ninja
 /ninja_test
+/parser_perftest
 /graph.png
 /doc/manual.html
 /doc/doxygen
index 1321629..7a5fd82 100644 (file)
@@ -24,6 +24,7 @@ int main(int argc, char* argv[]) {
     return 1;
   }
 
+  vector<float> times;
   for (int i = 1; i < argc; ++i) {
     const char* filename = argv[i];
 
@@ -47,11 +48,29 @@ int main(int argc, char* argv[]) {
 
       if (end - start > 100) {
         int delta = (int)(end - start);
-        printf("%s: %.2fus\n", filename, (float)(delta*1000 / (float)limit));
+        float time = delta*1000 / (float)limit;
+        printf("%s: %.1fus\n", filename, time);
+        times.push_back(time);
         break;
       }
     }
   }
 
+  if (!times.empty()) {
+    float min = times[0];
+    float max = times[0];
+    float total = 0;
+    for (size_t i = 0; i < times.size(); ++i) {
+      total += times[i];
+      if (times[i] < min)
+        min = times[i];
+      else if (times[i] > max)
+        max = times[i];
+    }
+
+    printf("min %.1fus  max %.1fus  avg %.1fus\n",
+           min, max, total / times.size());
+  }
+
   return 0;
 }