aboutsummaryrefslogtreecommitdiff
path: root/catapult/devil/devil/android/perf/surface_stats_collector.py
diff options
context:
space:
mode:
Diffstat (limited to 'catapult/devil/devil/android/perf/surface_stats_collector.py')
-rw-r--r--catapult/devil/devil/android/perf/surface_stats_collector.py21
1 files changed, 17 insertions, 4 deletions
diff --git a/catapult/devil/devil/android/perf/surface_stats_collector.py b/catapult/devil/devil/android/perf/surface_stats_collector.py
index 6240624f..4ddc6f5d 100644
--- a/catapult/devil/devil/android/perf/surface_stats_collector.py
+++ b/catapult/devil/devil/android/perf/surface_stats_collector.py
@@ -3,10 +3,16 @@
# found in the LICENSE file.
import logging
-import Queue
import re
import threading
+import six
+
+if six.PY3:
+ import queue # pylint: disable=wrong-import-order
+else:
+ import Queue as queue # pylint: disable=wrong-import-order
+
# Log marker containing SurfaceTexture timestamps.
_SURFACE_TEXTURE_TIMESTAMPS_MESSAGE = 'SurfaceTexture update timestamps'
_SURFACE_TEXTURE_TIMESTAMP_RE = r'\d+'
@@ -37,7 +43,7 @@ class SurfaceStatsCollector(object):
if self._ClearSurfaceFlingerLatencyData():
self._get_data_event = threading.Event()
self._stop_event = threading.Event()
- self._data_queue = Queue.Queue()
+ self._data_queue = queue.Queue()
self._collector_thread = threading.Thread(target=self._CollectorThread)
self._collector_thread.start()
else:
@@ -148,6 +154,10 @@ class SurfaceStatsCollector(object):
return ParseFrameData(output, parse_timestamps=bool(window_name))
+def to_long_int(val):
+ """Cast val to a long int type."""
+ return long(val) if six.PY2 else int(val)
+
def ParseFrameData(lines, parse_timestamps):
# adb shell dumpsys SurfaceFlinger --latency <window name>
# prints some information about the last 128 frames displayed in
@@ -174,6 +184,7 @@ def ParseFrameData(lines, parse_timestamps):
# (each time the number above changes, we have a "jank").
# If this happens a lot during an animation, the animation appears
# janky, even if it runs at 60 fps in average.
+ # pylint: disable=redefined-variable-type
results = []
for line in lines:
# Skip over lines with anything other than digits and whitespace.
@@ -186,7 +197,8 @@ def ParseFrameData(lines, parse_timestamps):
timestamps = []
nanoseconds_per_millisecond = 1e6
- refresh_period = long(results[0]) / nanoseconds_per_millisecond
+ refresh_period = to_long_int(results[0]) / nanoseconds_per_millisecond
+
if not parse_timestamps:
return refresh_period, timestamps
@@ -201,7 +213,8 @@ def ParseFrameData(lines, parse_timestamps):
if len(fields) != 3:
logging.warning('Unexpected line: %s', line)
continue
- timestamp = long(fields[1])
+ timestamp = to_long_int(fields[1])
+
if timestamp == pending_fence_timestamp:
continue
timestamp /= nanoseconds_per_millisecond