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

Side by Side Diff: tools/profile_chrome/main.py

Issue 879853002: Add a --startup option to generate combined traces for startup. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Typo. Created 5 years, 10 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 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # 2 #
3 # Copyright 2014 The Chromium Authors. All rights reserved. 3 # Copyright 2014 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 import logging 7 import logging
8 import optparse 8 import optparse
9 import os 9 import os
10 import sys 10 import sys
11 import webbrowser 11 import webbrowser
12 12
13 from profile_chrome import chrome_controller 13 from profile_chrome import chrome_controller
14 from profile_chrome import flags
14 from profile_chrome import perf_controller 15 from profile_chrome import perf_controller
15 from profile_chrome import profiler 16 from profile_chrome import profiler
16 from profile_chrome import systrace_controller 17 from profile_chrome import systrace_controller
17 from profile_chrome import ui 18 from profile_chrome import ui
18 19
19 from pylib import android_commands 20 from pylib import android_commands
20 from pylib.device import device_utils 21 from pylib.device import device_utils
21 22
22 23
23 _DEFAULT_CHROME_CATEGORIES = '_DEFAULT_CHROME_CATEGORIES' 24 _DEFAULT_CHROME_CATEGORIES = '_DEFAULT_CHROME_CATEGORIES'
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 chrome_opts.add_option('--trace-flow', help='Enable extra trace categories ' 113 chrome_opts.add_option('--trace-flow', help='Enable extra trace categories '
113 'for IPC message flows.', action='store_true') 114 'for IPC message flows.', action='store_true')
114 chrome_opts.add_option('--trace-memory', help='Enable extra trace categories ' 115 chrome_opts.add_option('--trace-memory', help='Enable extra trace categories '
115 'for memory profile. (tcmalloc required)', 116 'for memory profile. (tcmalloc required)',
116 action='store_true') 117 action='store_true')
117 chrome_opts.add_option('--trace-scheduler', help='Enable extra trace ' 118 chrome_opts.add_option('--trace-scheduler', help='Enable extra trace '
118 'categories for scheduler state', 119 'categories for scheduler state',
119 action='store_true') 120 action='store_true')
120 parser.add_option_group(chrome_opts) 121 parser.add_option_group(chrome_opts)
121 122
122 systrace_opts = optparse.OptionGroup(parser, 'Systrace tracing options') 123 parser.add_option_group(flags.SystraceOptions(parser))
123 systrace_opts.add_option('-s', '--systrace', help='Capture a systrace with '
124 'the chosen comma-delimited systrace categories. You '
125 'can also capture a combined Chrome + systrace by '
126 'enable both types of categories. Use "list" to see '
127 'the available categories. Systrace is disabled by '
128 'default.', metavar='SYS_CATEGORIES',
129 dest='systrace_categories', default='')
130 parser.add_option_group(systrace_opts)
131 124
132 if perf_controller.PerfProfilerController.IsSupported(): 125 if perf_controller.PerfProfilerController.IsSupported():
133 perf_opts = optparse.OptionGroup(parser, 'Perf profiling options') 126 perf_opts = optparse.OptionGroup(parser, 'Perf profiling options')
134 perf_opts.add_option('-p', '--perf', help='Capture a perf profile with ' 127 perf_opts.add_option('-p', '--perf', help='Capture a perf profile with '
135 'the chosen comma-delimited event categories. ' 128 'the chosen comma-delimited event categories. '
136 'Samples CPU cycles by default. Use "list" to see ' 129 'Samples CPU cycles by default. Use "list" to see '
137 'the available sample types.', action='callback', 130 'the available sample types.', action='callback',
138 default='', callback=_OptionalValueCallback('cycles'), 131 default='', callback=_OptionalValueCallback('cycles'),
139 metavar='PERF_CATEGORIES', dest='perf_categories') 132 metavar='PERF_CATEGORIES', dest='perf_categories')
140 parser.add_option_group(perf_opts) 133 parser.add_option_group(perf_opts)
141 134
142 output_options = optparse.OptionGroup(parser, 'Output options') 135 parser.add_option_group(flags.OutputOptions(parser))
143 output_options.add_option('-o', '--output', help='Save trace output to file.')
144 output_options.add_option('--json', help='Save trace as raw JSON instead of '
145 'HTML.', action='store_true')
146 output_options.add_option('--view', help='Open resulting trace file in a '
147 'browser.', action='store_true')
148 parser.add_option_group(output_options)
149 136
150 browsers = sorted(profiler.GetSupportedBrowsers().keys()) 137 browsers = sorted(profiler.GetSupportedBrowsers().keys())
151 parser.add_option('-b', '--browser', help='Select among installed browsers. ' 138 parser.add_option('-b', '--browser', help='Select among installed browsers. '
152 'One of ' + ', '.join(browsers) + ', "stable" is used by ' 139 'One of ' + ', '.join(browsers) + ', "stable" is used by '
153 'default.', type='choice', choices=browsers, 140 'default.', type='choice', choices=browsers,
154 default='stable') 141 default='stable')
155 parser.add_option('-v', '--verbose', help='Verbose logging.', 142 parser.add_option('-v', '--verbose', help='Verbose logging.',
156 action='store_true') 143 action='store_true')
157 parser.add_option('-z', '--compress', help='Compress the resulting trace ' 144 parser.add_option('-z', '--compress', help='Compress the resulting trace '
158 'with gzip. ', action='store_true') 145 'with gzip. ', action='store_true')
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 enabled_controllers, 238 enabled_controllers,
252 options.time if not options.continuous else 0, 239 options.time if not options.continuous else 0,
253 output=options.output, 240 output=options.output,
254 compress=options.compress, 241 compress=options.compress,
255 write_json=options.json) 242 write_json=options.json)
256 if options.view: 243 if options.view:
257 if sys.platform == 'darwin': 244 if sys.platform == 'darwin':
258 os.system('/usr/bin/open %s' % os.path.abspath(result)) 245 os.system('/usr/bin/open %s' % os.path.abspath(result))
259 else: 246 else:
260 webbrowser.open(result) 247 webbrowser.open(result)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698