aboutsummaryrefslogtreecommitdiff
path: root/crosperf/results_organizer.py
diff options
context:
space:
mode:
authorAhmad Sharif <asharif@chromium.org>2012-10-09 17:48:09 -0700
committerAhmad Sharif <asharif@chromium.org>2012-10-09 17:48:09 -0700
commitf395c26437cbdabc2960447fba89b226f4409e82 (patch)
treec67df25ac39b2c2b3d6d9aa847391edebbb0c478 /crosperf/results_organizer.py
parenta171f8d10c0507127de54c60076f1f59feef3629 (diff)
downloadtoolchain-utils-f395c26437cbdabc2960447fba89b226f4409e82.tar.gz
Synced repos to: 63271
Diffstat (limited to 'crosperf/results_organizer.py')
-rw-r--r--crosperf/results_organizer.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/crosperf/results_organizer.py b/crosperf/results_organizer.py
new file mode 100644
index 00000000..0071387b
--- /dev/null
+++ b/crosperf/results_organizer.py
@@ -0,0 +1,42 @@
+#!/usr/bin/python
+
+# Copyright 2012 Google Inc. All Rights Reserved.
+
+
+class ResultOrganizer(object):
+ """Create a dict from benchmark_runs.
+
+ The structure of the output dict is as follows:
+ {"benchmark_1":[
+ [{"key1":"v1", "key2":"v2"},{"key1":"v1", "key2","v2"}]
+ #one label
+ []
+ #the other label
+ ]
+ "benchmark_2":
+ [
+ ]}.
+ """
+
+ def __init__(self, benchmark_runs, labels):
+ self.result = {}
+ self.labels = []
+ for label in labels:
+ self.labels.append(label.name)
+ for benchmark_run in benchmark_runs:
+ benchmark_name = benchmark_run.benchmark_name
+ if benchmark_name not in self.result:
+ self.result[benchmark_name] = []
+ while len(self.result[benchmark_name]) < len(labels):
+ self.result[benchmark_name].append([])
+ label_index = self.labels.index(benchmark_run.label_name)
+ cur_table = self.result[benchmark_name][label_index]
+ index = benchmark_run.iteration - 1
+ while index >= len(cur_table):
+ cur_table.append({})
+ cur_dict = cur_table[index]
+ if not benchmark_run.result:
+ continue
+ for autotest_key in benchmark_run.result.keyvals:
+ result_value = benchmark_run.result.keyvals[autotest_key]
+ cur_dict[autotest_key] = result_value