Permalink
Browse files

Merge pull request #328 from nico/canonperf

add canon_perftest
  • Loading branch information...
2 parents 18ea1ff + 993566a commit 8f686fae940e9d2dfb86cb8cbb5ee11176ae03de @evmar evmar committed Jun 15, 2012
Showing with 43 additions and 1 deletion.
  1. +5 −1 configure.py
  2. +38 −0 src/canon_perftest.cc
View
@@ -323,8 +323,12 @@ def binary(name):
build_log_perftest = n.build(binary('build_log_perftest'), 'link', objs,
implicit=ninja_lib,
variables=[('libs', libs)])
+objs = cxx('canon_perftest')
+canon_perftest = n.build(binary('canon_perftest'), 'link', objs,
+ implicit=ninja_lib,
+ variables=[('libs', libs)])
n.newline()
-all_targets += parser_perftest + build_log_perftest
+all_targets += parser_perftest + build_log_perftest + canon_perftest
n.comment('Generate a graph using the "graph" tool.')
n.rule('gendot',
View
@@ -0,0 +1,38 @@
+#include "util.h"
+
+const char kPath[] =
+ "../../third_party/WebKit/Source/WebCore/"
+ "platform/leveldb/LevelDBWriteBatch.cpp";
+
+int main() {
+ vector<int> times;
+ string err;
+
+ char buf[200];
+ int len = strlen(kPath);
+ strcpy(buf, kPath);
+
+ for (int j = 0; j < 5; ++j) {
+ const int kNumRepetitions = 2000000;
+ int64_t start = GetTimeMillis();
+ for (int i = 0; i < kNumRepetitions; ++i) {
+ CanonicalizePath(buf, &len, &err);
+ }
+ int delta = (int)(GetTimeMillis() - start);
+ times.push_back(delta);
+ }
+
+ int min = times[0];
+ int 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 %dms max %dms avg %.1fms\n",
+ min, max, total / times.size());
+}

0 comments on commit 8f686fa

Please sign in to comment.