Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(93)

Side by Side Diff: systrace/profile_chrome/ddms_tracing_agent.py

Issue 2712163002: [Systrace] Fix systrace clock syncing issue with BattOr. (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import optparse 5 import optparse
6 import os 6 import os
7 import py_utils 7 import py_utils
8 import re 8 import re
9 9
10 from profile_chrome import util 10 from profile_chrome import util
11 from systrace import trace_result 11 from systrace import trace_result
12 from systrace import tracing_agents 12 from systrace import tracing_agents
13 from telemetry.timeline import trace_data as trace_data_module
13 14
14 15
15 _DDMS_SAMPLING_FREQUENCY_US = 100 16 _DDMS_SAMPLING_FREQUENCY_US = 100
16 17
17 18
18 class DdmsAgent(tracing_agents.TracingAgent): 19 class DdmsAgent(tracing_agents.TracingAgent):
19 def __init__(self, device, package_info): 20 def __init__(self, device, package_info):
20 tracing_agents.TracingAgent.__init__(self) 21 tracing_agents.TracingAgent.__init__(self)
21 self._device = device 22 self._device = device
22 self._package = package_info.package 23 self._package = package_info.package
(...skipping 24 matching lines...) Expand all
47 def StopAgentTracing(self, timeout=None): 48 def StopAgentTracing(self, timeout=None):
48 self._device.RunShellCommand('am profile stop %s' % self._package) 49 self._device.RunShellCommand('am profile stop %s' % self._package)
49 return True 50 return True
50 51
51 @py_utils.Timeout(tracing_agents.GET_RESULTS_TIMEOUT) 52 @py_utils.Timeout(tracing_agents.GET_RESULTS_TIMEOUT)
52 def GetResults(self, timeout=None): 53 def GetResults(self, timeout=None):
53 with open(self._PullTrace(), 'r') as f: 54 with open(self._PullTrace(), 'r') as f:
54 trace_data = f.read() 55 trace_data = f.read()
55 return trace_result.TraceResult('ddms', trace_data) 56 return trace_result.TraceResult('ddms', trace_data)
56 57
58 def CollectAgentTraceData(self, trace_data_builder):
59 with open(self._PullTrace(), 'r') as f:
60 trace_data = f.read()
61 trace_data_builder(trace_data_module.DDMS_TRACE_PART, trace_data)
62
57 def _PullTrace(self): 63 def _PullTrace(self):
58 if not self._output_file: 64 if not self._output_file:
59 return None 65 return None
60 66
61 host_file = os.path.join( 67 host_file = os.path.join(
62 os.path.curdir, os.path.basename(self._output_file)) 68 os.path.curdir, os.path.basename(self._output_file))
63 self._device.PullFile(self._output_file, host_file) 69 self._device.PullFile(self._output_file, host_file)
64 return host_file 70 return host_file
65 71
66 def SupportsExplicitClockSync(self): 72 def SupportsExplicitClockSync(self):
(...skipping 19 matching lines...) Expand all
86 return None 92 return None
87 93
88 def add_options(parser): 94 def add_options(parser):
89 options = optparse.OptionGroup(parser, 'Java tracing') 95 options = optparse.OptionGroup(parser, 'Java tracing')
90 options.add_option('--ddms', help='Trace Java execution using DDMS ' 96 options.add_option('--ddms', help='Trace Java execution using DDMS '
91 'sampling.', action='store_true') 97 'sampling.', action='store_true')
92 return options 98 return options
93 99
94 def get_config(options): 100 def get_config(options):
95 return DdmsConfig(options.device, options.package_info, options.ddms) 101 return DdmsConfig(options.device, options.package_info, options.ddms)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698