Skip to content

Commit

Permalink
Merge pull request #328 from nico/canonperf
Browse files Browse the repository at this point in the history
add canon_perftest
  • Loading branch information
evmar committed Jun 15, 2012
2 parents 18ea1ff + 993566a commit 8f686fa
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 1 deletion.
6 changes: 5 additions & 1 deletion configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
38 changes: 38 additions & 0 deletions src/canon_perftest.cc
Original file line number Diff line number Diff line change
@@ -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.