Index: build/android/perf_tests_helper.py |
diff --git a/build/android/perf_tests_helper.py b/build/android/perf_tests_helper.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..39bf587b6926d81bd1adb4e7473889a38f47c61d |
--- /dev/null |
+++ b/build/android/perf_tests_helper.py |
@@ -0,0 +1,57 @@ |
+#!/usr/bin/python |
+# Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+import re |
+ |
+ |
+def _EscapePerfResult(s): |
+ """Escapes |s| for use in a perf result.""" |
+ # Colons (:) and equal signs (=) are not allowed, and we chose an arbitrary |
+ # limit of 40 chars. |
+ return re.sub(':|=', '_', s[:40]) |
+ |
+ |
+def PrintPerfResult(measurement, trace, values, units, important=True, |
+ print_to_stdout=True): |
+ """Prints numerical data to stdout in the format required by perf tests. |
+ |
+ The string args may be empty but they must not contain any colons (:) or |
+ equals signs (=). |
+ |
+ Args: |
+ measurement: A description of the quantity being measured, e.g. "vm_peak". |
+ trace: A description of the particular data point, e.g. "reference". |
+ values: A list of numeric measured values. |
+ units: A description of the units of measure, e.g. "bytes". |
+ important: If True, the output line will be specially marked, to notify the |
+ post-processor. |
+ |
+ Returns: |
+ String of the formated perf result. |
+ """ |
+ important_marker = '*' if important else '' |
+ |
+ assert isinstance(values, list) |
+ assert len(values) |
+ assert '/' not in measurement |
+ avg = None |
+ if len(values) > 1: |
+ try: |
+ value = '[%s]' % ','.join([str(v) for v in values]) |
+ avg = sum([float(v) for v in values]) / len(values) |
+ except ValueError: |
+ value = ", ".join(values) |
+ else: |
+ value = values[0] |
+ |
+ output = '%sRESULT %s: %s= %s %s' % (important_marker, |
+ _EscapePerfResult(measurement), |
+ _EscapePerfResult(trace), |
+ value, units) |
+ if avg: |
+ output += '\nAvg %s: %d%s' % (measurement, avg, units) |
+ if print_to_stdout: |
+ print output |
+ return output |