| Index: build/android/pylib/surface_stats_collector.py
|
| diff --git a/build/android/pylib/surface_stats_collector.py b/build/android/pylib/surface_stats_collector.py
|
| index 8d8c9927cf016ae661084f2ecb73551977293c87..42e0874534e5165f65b8df8f4c2d342617d289b9 100644
|
| --- a/build/android/pylib/surface_stats_collector.py
|
| +++ b/build/android/pylib/surface_stats_collector.py
|
| @@ -22,6 +22,12 @@ class SurfaceStatsCollector(object):
|
| Args:
|
| adb: the adb connection to use.
|
| """
|
| + class Result(object):
|
| + def __init__(self, name, value, unit):
|
| + self.name = name
|
| + self.value = value
|
| + self.unit = unit
|
| +
|
| def __init__(self, adb, trace_tag):
|
| self._adb = adb
|
| self._trace_tag = trace_tag
|
| @@ -31,6 +37,8 @@ class SurfaceStatsCollector(object):
|
| self._get_data_event = None
|
| self._data_queue = None
|
| self._stop_event = None
|
| + self._print_perf_results = True
|
| + self._results = []
|
|
|
| def __enter__(self):
|
| assert not self._collector_thread
|
| @@ -46,13 +54,27 @@ class SurfaceStatsCollector(object):
|
| self._surface_before = self._GetSurfaceStatsLegacy()
|
|
|
| def __exit__(self, *args):
|
| + self._StorePerfResults()
|
| self._PrintPerfResults()
|
| if self._collector_thread:
|
| self._stop_event.set()
|
| self._collector_thread.join()
|
| self._collector_thread = None
|
|
|
| + def GetResults(self):
|
| + return self._results
|
| +
|
| + def SuppressPrintingResults(self):
|
| + self._print_perf_results = False
|
| +
|
| def _PrintPerfResults(self):
|
| + if not self._print_perf_results:
|
| + return
|
| + for r in self._results:
|
| + perf_tests_helper.PrintPerfResult(r.name, r.name + self._trace_tag,
|
| + r.value, r.unit)
|
| +
|
| + def _StorePerfResults(self):
|
| if self._use_legacy_method:
|
| surface_after = self._GetSurfaceStatsLegacy()
|
| td = surface_after['timestamp'] - self._surface_before['timestamp']
|
| @@ -74,19 +96,14 @@ class SurfaceStatsCollector(object):
|
| jitter_count = jitter_count + 1
|
| last_latency = latency
|
|
|
| - perf_tests_helper.PrintPerfResult(
|
| - 'surface_latencies', 'surface_latencies' + self._trace_tag,
|
| - latencies, '')
|
| - perf_tests_helper.PrintPerfResult(
|
| - 'peak_jitter', 'peak_jitter' + self._trace_tag, [max(latencies)], '')
|
| - perf_tests_helper.PrintPerfResult(
|
| - 'jitter_percent', 'jitter_percent' + self._trace_tag,
|
| - [jitter_count * 100.0 / frame_count], 'percent')
|
| -
|
| - print 'SurfaceMonitorTime: %fsecs' % seconds
|
| - perf_tests_helper.PrintPerfResult(
|
| - 'avg_surface_fps', 'avg_surface_fps' + self._trace_tag,
|
| - [int(round(frame_count / seconds))], 'fps')
|
| + self._results.append(SurfaceStatsCollector.Result(
|
| + 'surface_latencies', latencies, ''))
|
| + self._results.append(SurfaceStatsCollector.Result(
|
| + 'peak_jitter', [max(latencies)], ''))
|
| + self._results.append(SurfaceStatsCollector.Result(
|
| + 'jitter_percent', [jitter_count * 100.0 / frame_count], 'percent'))
|
| + self._results.append(SurfaceStatsCollector.Result(
|
| + 'avg_surface_fps', [int(round(frame_count / seconds))], 'fps'))
|
|
|
| def _CollectorThread(self):
|
| last_timestamp = 0
|
|
|