| Index: build/android/pylib/perf_tests_helper.py
|
| diff --git a/build/android/pylib/perf_tests_helper.py b/build/android/pylib/perf_tests_helper.py
|
| index e09221bbf930941fbf1d1a0c09ed6dad073f1587..d227d4153ffe45425f0341d904ec1ea37919f1ad 100644
|
| --- a/build/android/pylib/perf_tests_helper.py
|
| +++ b/build/android/pylib/perf_tests_helper.py
|
| @@ -76,9 +76,7 @@ def PrintPerfResult(measurement, trace, values, units, result_type='default',
|
| 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".
|
| - result_type: A tri-state that accepts values of ['unimportant', 'default',
|
| - 'informational']. 'unimportant' prints RESULT, 'default' prints *RESULT
|
| - and 'informational' prints nothing.
|
| + result_type: Accepts values of RESULT_TYPES.
|
| print_to_stdout: If True, prints the output in stdout instead of returning
|
| the output to caller.
|
|
|
| @@ -87,28 +85,43 @@ def PrintPerfResult(measurement, trace, values, units, result_type='default',
|
| """
|
| assert result_type in RESULT_TYPES, 'result type: %s is invalid' % result_type
|
|
|
| + trace_name = _EscapePerfResult(trace)
|
| +
|
| if result_type in ['unimportant', 'default', 'informational']:
|
| assert isinstance(values, list)
|
| assert len(values)
|
| assert '/' not in measurement
|
| value, avg, sd = _MeanAndStdDevFromList(values)
|
| + output = '%s%s: %s%s%s %s' % (
|
| + RESULT_TYPES[result_type],
|
| + _EscapePerfResult(measurement),
|
| + trace_name,
|
| + # Do not show equal sign if the trace is empty. Usually it happens when
|
| + # measurement is enough clear to describe the result.
|
| + '= ' if trace_name else '',
|
| + value,
|
| + units)
|
| else:
|
| - value = values[0]
|
| - # We can't print the units, otherwise parsing the histogram json output
|
| - # can't be parsed easily.
|
| - units = ''
|
| - avg, sd = GeomMeanAndStdDevFromHistogram(value)
|
| + assert(result_type in ['histogram', 'unimportant-histogram'])
|
| + assert isinstance(values, list)
|
| + assert len(values)
|
| + # Print out each histogram separately. We can't print the units, otherwise
|
| + # the histogram json output can't be parsed easily.
|
| + output = ''
|
| + ix = 1
|
| + for value in values:
|
| + name = '%s.%s_%d' % (_EscapePerfResult(measurement), trace_name, ix)
|
| + output += '%s%s%s : %s = %s' % (
|
| + '\n' if ix > 1 else '',
|
| + RESULT_TYPES[result_type],
|
| + name,
|
| + name,
|
| + value)
|
| + ix += 1
|
| + measurement = '%s.%s' % (measurement, trace_name)
|
| + means_and_sds = [GeomMeanAndStdDevFromHistogram(value) for value in values]
|
| + _, avg, sd = _MeanAndStdDevFromList([mean for (mean, _) in means_and_sds ])
|
|
|
| - trace_name = _EscapePerfResult(trace)
|
| - output = '%s%s: %s%s%s %s' % (
|
| - RESULT_TYPES[result_type],
|
| - _EscapePerfResult(measurement),
|
| - trace_name,
|
| - # Do not show equal sign if the trace is empty. Usually it happens when
|
| - # measurement is enough clear to describe the result.
|
| - '= ' if trace_name else '',
|
| - value,
|
| - units)
|
| if avg:
|
| output += '\nAvg %s: %f%s' % (measurement, avg, units)
|
| if sd:
|
|
|