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

Side by Side Diff: tools/turbolizer/perf-turbo.py

Issue 2174803002: [turbolizer] Add support for showing perf profiling information. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: [turbolizer] Add support for showing perf profiling information. Created 4 years, 4 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
« no previous file with comments | « tools/turbolizer/index.html ('k') | tools/turbolizer/turbo-visualizer.css » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright 2016 the V8 project authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import os
6 import sys
7 import json
8 import re
9 import argparse
10
11 sys.path.append(os.environ['PERF_EXEC_PATH'] + \
12 '/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
13
14 from perf_trace_context import *
15 from Core import *
16
17 def trace_begin():
18 json_obj['eventCounts'] = {}
19 prog = re.compile(r'0x[0-9a-fA-F]+')
20 for phase in reversed(json_obj['phases']):
21 if phase['name'] == "disassembly":
22 for line in phase['data'].splitlines():
23 result = re.match(prog, line)
24 if result:
25 known_addrs.add(result.group(0))
26
27 def trace_end():
28 print json.dumps(json_obj)
29
30 def process_event(param_dict):
31 addr = "0x%x" % int(param_dict['sample']['ip'])
32
33 # Only count samples that belong to the function
34 if addr not in known_addrs:
35 return
36
37 ev_name = param_dict['ev_name']
38 if ev_name not in json_obj['eventCounts']:
39 json_obj['eventCounts'][ev_name] = {}
40 if addr not in json_obj['eventCounts'][ev_name]:
41 json_obj['eventCounts'][ev_name][addr] = 0
42 json_obj['eventCounts'][ev_name][addr] += 1
43
44 if __name__ == "__main__":
45 parser = argparse.ArgumentParser(
46 description="Perf script to merge profiling data with turbofan compiler "
47 "traces.")
48 parser.add_argument("file_name", metavar="JSON File",
49 help="turbo trace json file.")
50
51 args = parser.parse_args()
52
53 with open(args.file_name, 'r') as json_file:
54 json_obj = json.load(json_file)
55
56 known_addrs = set()
OLDNEW
« no previous file with comments | « tools/turbolizer/index.html ('k') | tools/turbolizer/turbo-visualizer.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698