OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import re | 5 import re |
6 | 6 |
7 import android_commands | 7 import android_commands |
8 import json | 8 import json |
9 import math | 9 import math |
10 | 10 |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 _EscapePerfResult(measurement), | 96 _EscapePerfResult(measurement), |
97 trace_name, | 97 trace_name, |
98 # Do not show equal sign if the trace is empty. Usually it happens when | 98 # Do not show equal sign if the trace is empty. Usually it happens when |
99 # measurement is enough clear to describe the result. | 99 # measurement is enough clear to describe the result. |
100 '= ' if trace_name else '', | 100 '= ' if trace_name else '', |
101 value, | 101 value, |
102 units) | 102 units) |
103 else: | 103 else: |
104 assert(result_type in ['histogram', 'unimportant-histogram']) | 104 assert(result_type in ['histogram', 'unimportant-histogram']) |
105 assert isinstance(values, list) | 105 assert isinstance(values, list) |
106 assert len(values) | 106 # The histograms can only be printed individually, there's no computation |
107 # Print out each histogram separately. We can't print the units, otherwise | 107 # across different histograms. |
108 # the histogram json output can't be parsed easily. | 108 assert len(values) == 1 |
109 output = '' | 109 value = values[0] |
110 ix = 1 | 110 measurement += '.' + trace_name |
111 for value in values: | 111 output = '%s%s: %s=%s' % ( |
112 name = '%s.%s_%d' % (_EscapePerfResult(measurement), trace_name, ix) | 112 RESULT_TYPES[result_type], |
113 output += '%s%s%s : %s = %s' % ( | 113 _EscapePerfResult(measurement), |
114 '\n' if ix > 1 else '', | 114 _EscapePerfResult(measurement), |
115 RESULT_TYPES[result_type], | 115 value) |
116 name, | 116 avg, sd = GeomMeanAndStdDevFromHistogram(value) |
117 name, | |
118 value) | |
119 ix += 1 | |
120 measurement = '%s.%s' % (measurement, trace_name) | |
121 means_and_sds = [GeomMeanAndStdDevFromHistogram(value) for value in values] | |
122 _, avg, sd = _MeanAndStdDevFromList([mean for (mean, _) in means_and_sds ]) | |
123 | 117 |
124 if avg: | 118 if avg: |
125 output += '\nAvg %s: %f%s' % (measurement, avg, units) | 119 output += '\nAvg %s: %f%s' % (measurement, avg, units) |
126 if sd: | 120 if sd: |
127 output += '\nSd %s: %f%s' % (measurement, sd, units) | 121 output += '\nSd %s: %f%s' % (measurement, sd, units) |
128 if print_to_stdout: | 122 if print_to_stdout: |
129 print output | 123 print output |
130 return output | 124 return output |
131 | 125 |
132 | 126 |
(...skipping 29 matching lines...) Expand all Loading... |
162 def TearDown(self): | 156 def TearDown(self): |
163 """Tears down performance tests.""" | 157 """Tears down performance tests.""" |
164 if self._original_scaling_governor: | 158 if self._original_scaling_governor: |
165 self._SetScalingGovernorInternal(self._original_scaling_governor) | 159 self._SetScalingGovernorInternal(self._original_scaling_governor) |
166 self._original_scaling_governor = None | 160 self._original_scaling_governor = None |
167 | 161 |
168 def _SetScalingGovernorInternal(self, value): | 162 def _SetScalingGovernorInternal(self, value): |
169 for cpu in range(self._num_cpus): | 163 for cpu in range(self._num_cpus): |
170 self._adb.RunShellCommand( | 164 self._adb.RunShellCommand( |
171 ('echo %s > ' + PerfTestSetup._SCALING_GOVERNOR) % (value, cpu)) | 165 ('echo %s > ' + PerfTestSetup._SCALING_GOVERNOR) % (value, cpu)) |
OLD | NEW |