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

Unified Diff: tools/telemetry/telemetry/core/platform/profiler/perf_vis/perf_to_tracing.py

Issue 296623002: Integrate perfvis profiling mode, and temporary report generator. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/core/platform/profiler/perf_vis/perf_to_tracing.py
diff --git a/tools/profile_chrome/third_party/perf_to_tracing.py b/tools/telemetry/telemetry/core/platform/profiler/perf_vis/perf_to_tracing.py
similarity index 70%
copy from tools/profile_chrome/third_party/perf_to_tracing.py
copy to tools/telemetry/telemetry/core/platform/profiler/perf_vis/perf_to_tracing.py
index 280937a8f49b85322138931ad035bb7aebf44fea..2a74b1663facb5407938359de04516d96cf29133 100644
--- a/tools/profile_chrome/third_party/perf_to_tracing.py
+++ b/tools/telemetry/telemetry/core/platform/profiler/perf_vis/perf_to_tracing.py
@@ -1,75 +1,73 @@
-# Script for converting perf script events into tracing JSON.
-#
-# Generated by perf script -g python
+# perf script event handlers, generated by perf script -g python
# Licensed under the terms of the GNU GPL License version 2
-import json
+# The common_* event handler fields are the most useful fields common to
+# all events. They don't necessarily correspond to the 'common_*' fields
+# in the format files. Those fields not available as handler params can
+# be retrieved using Python functions of the form common_*(context).
+# See the perf-trace-python Documentation for the list of available functions.
+
import os
import sys
-
+import json
from collections import deque
-
# Categorize DSOs by component.
-dso_to_comp = {
- 'libdvm.so': 'Java',
- 'libart.so': 'Java',
- 'libjavacore.so': 'Java',
- 'libandroid_runtime.so': 'Android',
- 'libgui.so': 'Android',
- 'libui.so': 'Android',
- 'libbinder.so': 'Android',
- 'libmemalloc.so': 'Android',
- 'libcrypto.so': 'Android',
- 'libcutils.so':'Android',
- 'libutils.so': 'Android',
- '[kernel.kallsyms]': 'Kernel',
- 'libc.so': 'Standard Lib',
- 'libstdc++.so': 'Standard Lib',
- 'libm.so':'Standard Lib',
- 'libGLESv2_adreno.so': 'GPU Driver',
- 'libGLESv2_adreno200.so': 'GPU Driver',
- 'libq3dtools_adreno200.so': 'GPU Driver',
- 'libEGL_adreno.so': 'GPU Driver',
- 'libEGL_adreno200.so': 'GPU Driver',
- 'libEGL.so': 'GPU Driver',
- 'libgsl.so': 'GPU Driver',
- 'libGLESv2.so': 'GPU Driver',
- 'libsc-a3xx.so': 'GPU Driver',
- 'libadreno_utils.so': 'GPU Driver',
- 'eglsubAndroid.so': 'GPU Driver',
- 'gralloc.msm8960.so': 'GPU Driver',
- 'libadreno_utils': 'GPU Driver',
- 'libGLES_mali.so': 'GPU Driver',
- 'libchromeview.so': 'Chrome',
- '[unknown]': '<unknown>',
- '[UNKNOWN]': '<unknown>',
-}
-
+dso_to_comp = {'libdvm.so': 'Java',
+ 'libart.so': 'Java',
+ 'libjavacore.so': 'Java',
+ 'libandroid_runtime.so': 'Android',
+ 'libgui.so': 'Android',
+ 'libui.so': 'Android',
+ 'libbinder.so': 'Android',
+ 'libmemalloc.so': 'Android',
+ 'libcrypto.so': 'Android',
+ 'libcutils.so':'Android',
+ 'libutils.so': 'Android',
+ '[kernel.kallsyms]': 'Kernel',
+ 'libc.so': 'Standard Lib',
+ 'libstdc++.so': 'Standard Lib',
+ 'libm.so':'Standard Lib',
+ 'libGLESv2_adreno.so': 'GPU Driver',
+ 'libGLESv2_adreno200.so': 'GPU Driver',
+ 'libq3dtools_adreno200.so': 'GPU Driver',
+ 'libEGL_adreno.so': 'GPU Driver',
+ 'libEGL_adreno200.so': 'GPU Driver',
+ 'libEGL.so': 'GPU Driver',
+ 'libgsl.so': 'GPU Driver',
+ 'libGLESv2.so': 'GPU Driver',
+ 'libsc-a3xx.so': 'GPU Driver',
+ 'libadreno_utils.so': 'GPU Driver',
+ 'eglsubAndroid.so': 'GPU Driver',
+ 'gralloc.msm8960.so': 'GPU Driver',
+ 'libadreno_utils': 'GPU Driver',
+ 'libGLES_mali.so': 'GPU Driver',
+ 'libchromeview.so': 'Chrome',
+ '[unknown]': '<unknown>',
+ '[UNKNOWN]': '<unknown>',
+ }
def FilterSymbolModule(module):
m = dso_to_comp.get(module, None)
if m:
return m
- if module.find('libchrome.') == 0:
+ if module.find('libchrome') == 0 or module.find('libcontent_shell') == 0:
return 'Chrome'
if module.find('dalvik') >= 0 or module.find('@') >= 0:
return 'Java'
return module
-
def FilterSymbolName(module, orign_module, name):
if module == 'Java':
- return name
+ return name #orign_module
elif module == 'GPU Driver':
- return name
+ return name # orign_module
if name == '':
return orign_module + ':unknown'
if name[0].isdigit() or name == '(nil)':
return orign_module + ':unknown'
return name
-
class StackFrameNode:
def __init__(self, stack_id, name, category):
self.stack_id = stack_id
@@ -108,7 +106,6 @@ class StackFrameNode:
self.have_total_weight = True
return self.total_weight
-
class PerfSample:
def __init__(self, stack_id, ts, cpu, tid, weight, samp_type, comm):
self.stack_id = stack_id
@@ -132,20 +129,20 @@ class PerfSample:
ret['sf'] = self.stack_id # Stack frame id
return ret
-
samples = []
root_chain = StackFrameNode(0, 'root', '[unknown]')
next_stack_id = 1
tot_period = 0
saved_period = 0
-
def process_event(param_dict):
global next_stack_id
global saved_period
global tot_period
+ #print "process_event", param_dict
samp_comm = param_dict['comm']
+ #samp_pid = param_dict['pid']
samp_tid = param_dict['tid']
samp_cpu = param_dict['cpu']
samp_ts = param_dict['time']
@@ -200,12 +197,13 @@ def process_event(param_dict):
stack_frame.samples.append(sample)
saved_period += samp_period
-
def trace_begin():
pass
-
def trace_end():
+ #print '// tot_period', tot_period
+ #print '// saved_period', saved_period
+
# Return siblings of a call tree node.
def GetNodeSiblings(node):
if not node:
@@ -214,7 +212,7 @@ def trace_end():
return []
return node.parent.children.values()
- # Try to reduce misplaced stack leaves by moving them up into sibling nodes.
+ # Try to reduce misplaced stack leaves by mobing them up into sibling nodes.
def FixCallTree(node, parent):
# Get siblings of node's parent.
node.parent = parent

Powered by Google App Engine
This is Rietveld 408576698