OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 logging | 5 import logging |
6 import os | 6 import os |
7 import subprocess | 7 import subprocess |
8 import sys | 8 import sys |
9 import tempfile | 9 import tempfile |
10 | 10 |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 required_libs, | 164 required_libs, |
165 use_symlinks=False) | 165 use_symlinks=False) |
166 perfhost_path = os.path.abspath(support_binaries.FindPath( | 166 perfhost_path = os.path.abspath(support_binaries.FindPath( |
167 'perfhost', 'linux')) | 167 'perfhost', 'linux')) |
168 | 168 |
169 ui.PrintMessage('\nNote: to view the profile in perf, run:') | 169 ui.PrintMessage('\nNote: to view the profile in perf, run:') |
170 ui.PrintMessage(' ' + self._GetInteractivePerfCommand(perfhost_path, | 170 ui.PrintMessage(' ' + self._GetInteractivePerfCommand(perfhost_path, |
171 perf_profile, symfs_dir, required_libs, kallsyms)) | 171 perf_profile, symfs_dir, required_libs, kallsyms)) |
172 | 172 |
173 # Convert the perf profile into JSON. | 173 # Convert the perf profile into JSON. |
174 perf_script_path = os.path.join(constants.DIR_SOURCE_ROOT, | 174 perf_script_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), |
175 'tools', 'telemetry', 'telemetry', 'core', 'platform', 'profiler', | 175 'perf_to_tracing.py') |
176 'perf_vis', 'perf_to_tracing.py') | |
177 json_file_name = os.path.basename(perf_profile) | 176 json_file_name = os.path.basename(perf_profile) |
178 with open(os.devnull, 'w') as dev_null, \ | 177 with open(os.devnull, 'w') as dev_null, \ |
179 open(json_file_name, 'w') as json_file: | 178 open(json_file_name, 'w') as json_file: |
180 cmd = [perfhost_path, 'script', '-s', perf_script_path, '-i', | 179 cmd = [perfhost_path, 'script', '-s', perf_script_path, '-i', |
181 perf_profile, '--symfs', symfs_dir, '--kallsyms', kallsyms] | 180 perf_profile, '--symfs', symfs_dir, '--kallsyms', kallsyms] |
182 if subprocess.call(cmd, stdout=json_file, stderr=dev_null): | 181 if subprocess.call(cmd, stdout=json_file, stderr=dev_null): |
183 logging.warning('Perf data to JSON conversion failed. The result will ' | 182 logging.warning('Perf data to JSON conversion failed. The result will ' |
184 'not contain any perf samples. You can still view the ' | 183 'not contain any perf samples. You can still view the ' |
185 'perf data manually as shown above.') | 184 'perf data manually as shown above.') |
186 return None | 185 return None |
187 | 186 |
188 return json_file_name | 187 return json_file_name |
OLD | NEW |