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

Unified Diff: tools/ignition/linux_perf_report.py

Issue 2477363002: [Tools] Enable grouping of jited code in linux_perf_report.py. (Closed)
Patch Set: Add fix Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/ignition/linux_perf_report_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/ignition/linux_perf_report.py
diff --git a/tools/ignition/linux_perf_report.py b/tools/ignition/linux_perf_report.py
index eaf85b3f91efd21dd62fa5ba9d78d559a6e3fab6..69db37cbae4b276005a06e510e007378a0a96f8e 100755
--- a/tools/ignition/linux_perf_report.py
+++ b/tools/ignition/linux_perf_report.py
@@ -52,6 +52,8 @@ examples:
COMPILER_SYMBOLS_RE = re.compile(
r"v8::internal::(?:\(anonymous namespace\)::)?Compile|v8::internal::Parser")
+JIT_CODE_SYMBOLS_RE = re.compile(
+ r"(LazyCompile|Compile|Eval|Script):(\*|~)")
def strip_function_parameters(symbol):
@@ -70,7 +72,8 @@ def strip_function_parameters(symbol):
return symbol[:-pos]
-def collapsed_callchains_generator(perf_stream, show_all=False,
+def collapsed_callchains_generator(perf_stream, hide_other=False,
+ hide_compiler=False, hide_jit=False,
show_full_signatures=False):
current_chain = []
skip_until_end_of_chain = False
@@ -85,7 +88,8 @@ def collapsed_callchains_generator(perf_stream, show_all=False,
# Empty line signals the end of the callchain.
if not line:
- if not skip_until_end_of_chain and current_chain and show_all:
+ if (not skip_until_end_of_chain and current_chain
+ and not hide_other):
current_chain.append("[other]")
yield current_chain
# Reset parser status.
@@ -101,14 +105,26 @@ def collapsed_callchains_generator(perf_stream, show_all=False,
symbol = line.split(" ", 1)[1].split("+", 1)[0]
if not show_full_signatures:
symbol = strip_function_parameters(symbol)
+
+ # Avoid chains of [unknown]
+ if (symbol == "[unknown]" and current_chain and
+ current_chain[-1] == "[unknown]"):
+ continue
+
current_chain.append(symbol)
if symbol.startswith("BytecodeHandler:"):
+ current_chain.append("[interpreter]")
yield current_chain
skip_until_end_of_chain = True
+ elif JIT_CODE_SYMBOLS_RE.match(symbol):
+ if not hide_jit:
+ current_chain.append("[jit]")
+ yield current_chain
+ skip_until_end_of_chain = True
elif symbol == "Stub:CEntryStub" and compiler_symbol_in_chain:
- if show_all:
- current_chain[-1] = "[compiler]"
+ if not hide_compiler:
+ current_chain.append("[compiler]")
yield current_chain
skip_until_end_of_chain = True
elif COMPILER_SYMBOLS_RE.match(symbol):
@@ -181,8 +197,18 @@ def parse_command_line():
dest="output_flamegraph"
)
command_line_parser.add_argument(
- "--show-all", "-a",
- help="show samples outside Ignition bytecode handlers",
+ "--hide-other",
+ help="Hide other samples",
+ action="store_true"
+ )
+ command_line_parser.add_argument(
+ "--hide-compiler",
+ help="Hide samples during compilation",
+ action="store_true"
+ )
+ command_line_parser.add_argument(
+ "--hide-jit",
+ help="Hide samples from JIT code execution",
action="store_true"
)
command_line_parser.add_argument(
@@ -210,8 +236,8 @@ def main():
stdout=subprocess.PIPE)
callchains = collapsed_callchains_generator(
- perf.stdout, program_options.show_all,
- program_options.show_full_signatures)
+ perf.stdout, program_options.hide_other, program_options.hide_compiler,
+ program_options.hide_jit, program_options.show_full_signatures)
if program_options.output_flamegraph:
write_flamegraph_input_file(program_options.output_stream, callchains)
« no previous file with comments | « no previous file | tools/ignition/linux_perf_report_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698