Chromium Code Reviews| 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 |
|
Sami
2013/03/08 18:22:20
Is anyone using this in non-print-mode or should w
bulach
2013/03/11 10:18:01
N-sided patch... :-/
Telemetry with this patch no
|
| + 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 |