Index: build/android/surface_stats.py
|
diff --git a/build/android/surface_stats.py b/build/android/surface_stats.py
|
deleted file mode 100755
|
index 911dd2e557509889c89cc0add41ede1f93c089b7..0000000000000000000000000000000000000000
|
--- a/build/android/surface_stats.py
|
+++ /dev/null
|
@@ -1,142 +0,0 @@
|
-#!/usr/bin/env python
|
-#
|
-# Copyright (c) 2013 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.
|
-
|
-"""Command line tool for continuously printing Android graphics surface
|
-statistics on the console.
|
-"""
|
-
|
-import collections
|
-import optparse
|
-import sys
|
-import time
|
-
|
-from pylib.device import adb_wrapper
|
-from pylib.device import device_errors
|
-from pylib.device import device_utils
|
-from pylib.perf import surface_stats_collector
|
-from pylib.utils import run_tests_helper
|
-
|
-
|
-_FIELD_FORMAT = {
|
- 'jank_count (janks)': '%d',
|
- 'max_frame_delay (vsyncs)': '%d',
|
- 'avg_surface_fps (fps)': '%.2f',
|
- 'frame_lengths (vsyncs)': '%.3f',
|
- 'refresh_period (seconds)': '%.6f',
|
-}
|
-
|
-
|
-def _MergeResults(results, fields):
|
- merged_results = collections.defaultdict(list)
|
- for result in results:
|
- if ((fields != ['all'] and not result.name in fields) or
|
- result.value is None):
|
- continue
|
- name = '%s (%s)' % (result.name, result.unit)
|
- if isinstance(result.value, list):
|
- value = result.value
|
- else:
|
- value = [result.value]
|
- merged_results[name] += value
|
- for name, values in merged_results.iteritems():
|
- merged_results[name] = sum(values) / float(len(values))
|
- return merged_results
|
-
|
-
|
-def _GetTerminalHeight():
|
- try:
|
- import fcntl, termios, struct
|
- except ImportError:
|
- return 0, 0
|
- height, _, _, _ = struct.unpack('HHHH',
|
- fcntl.ioctl(0, termios.TIOCGWINSZ,
|
- struct.pack('HHHH', 0, 0, 0, 0)))
|
- return height
|
-
|
-
|
-def _PrintColumnTitles(results):
|
- for name in results.keys():
|
- print '%s ' % name,
|
- print
|
- for name in results.keys():
|
- print '%s ' % ('-' * len(name)),
|
- print
|
-
|
-
|
-def _PrintResults(results):
|
- for name, value in results.iteritems():
|
- value = _FIELD_FORMAT.get(name, '%s') % value
|
- print value.rjust(len(name)) + ' ',
|
- print
|
-
|
-
|
-def main(argv):
|
- parser = optparse.OptionParser(usage='Usage: %prog [options]',
|
- description=__doc__)
|
- parser.add_option('-v',
|
- '--verbose',
|
- dest='verbose_count',
|
- default=0,
|
- action='count',
|
- help='Verbose level (multiple times for more)')
|
- parser.add_option('--device',
|
- help='Serial number of device we should use.')
|
- parser.add_option('-f',
|
- '--fields',
|
- dest='fields',
|
- default='jank_count,max_frame_delay,avg_surface_fps,'
|
- 'frame_lengths',
|
- help='Comma separated list of fields to display or "all".')
|
- parser.add_option('-d',
|
- '--delay',
|
- dest='delay',
|
- default=1,
|
- type='float',
|
- help='Time in seconds to sleep between updates.')
|
-
|
- options, _ = parser.parse_args(argv)
|
- run_tests_helper.SetLogLevel(options.verbose_count)
|
-
|
- if options.device:
|
- device = device_utils.DeviceUtils(options.device)
|
- else:
|
- devices = adb_wrapper.AdbWrapper.GetDevices()
|
- if not devices:
|
- raise device_errors.NoDevicesError
|
- device = device_utils.DeviceUtils(devices[0])
|
-
|
- collector = surface_stats_collector.SurfaceStatsCollector(device)
|
- collector.DisableWarningAboutEmptyData()
|
-
|
- fields = options.fields.split(',')
|
- row_count = None
|
-
|
- try:
|
- collector.Start()
|
- while True:
|
- time.sleep(options.delay)
|
- results = collector.SampleResults()
|
- results = _MergeResults(results, fields)
|
-
|
- if not results:
|
- continue
|
-
|
- terminal_height = _GetTerminalHeight()
|
- if row_count is None or (terminal_height and
|
- row_count >= terminal_height - 3):
|
- _PrintColumnTitles(results)
|
- row_count = 0
|
-
|
- _PrintResults(results)
|
- row_count += 1
|
- except KeyboardInterrupt:
|
- sys.exit(0)
|
- finally:
|
- collector.Stop()
|
-
|
-
|
-if __name__ == '__main__':
|
- main(sys.argv)
|
|