前言:虽然有翻译软件,虽然有chatgpt,毕竟语言隔阂,对这个工具还是一知半解,因此想通过翻译的方式和大家来一起学习下Perfetto这个强大的工具
#####################以下分割线#####################
英文原文在这里
常见问题
如何从命令行打开trace 可视化界面
从命令行收集trace时,使用open_trace_in_ui脚本可以比较方便的打开traces。
可以按如下方式使用:
curl -OL https://github.com/google/perfetto/raw/master/tools/open_trace_in_ui
chmod +x open_trace_in_ui
./open_trace_in_ui -i /path/to/trace
如果已经下载好Perfetto。可以跳过前两个步骤。直接从Perfetto根目录执行。
tools/open_trace_in_ui -i /path/to/trace
为什么Perfetto不支持一些晦涩的JSON格式的trace
Json 格式的trace 是一种旧的trace 格式,我们尽力在Perfetto上支持这种格式。我们尽力保持与chrome://tracing UI上一样的事件解析和显示的格式规范。但总有例外,特别是非Chrome平台产生的json trace,具体取决于json 格式的trace对chrome://tracing的实现细节上。
如果支持某个功能会带来不合理的技术债务,我们通常会选择不支持该功能。建议用户使用Perfetto 原生支持的TrackEvent. 参考这里的指引.了解如何使用TrackEvent表示常见的JSON事件。
为什么JSON traces中的重叠事件没有正确显示?
Perfetto UI和trace processor不支持重叠的B/E/X事件,这符合JSON trace的规范。正如规范中所述,事件只允许完美嵌套。
建议用户使用TrackEvent,这个是Perfetto的原生支持的trace格式。请参阅本指南,了解如何使用TrackEvent表示常见的JSON事件。
如何在不instrumenting程序的情况下使用Perfetto工具?
一个常见的问题是,用户希望使用Perfetto分析和可视化工具,但他们不想instrument自己的程序。这可能是因为Perfetto不适合他们的用例,也可能是因为他们可能已经有了tracing系统。
对此,推荐的方法是发出Perfetto的原生TrackEvent proto格式。这里提供了相关的参考指南。
应用有多个进程,怎样才能在一个trace看到所有的进程
在“系统模式”下使用Tracing SDK。所有进程都将通过socket被trace,这样就能在一个trace看到所有的进程。
#####################以上分割线#####################
后记:
1 本次主要使用百度翻译,虽然被骂,但至少翻译这个工具降低了门槛。
2 英文文档中的长难句真的是又长又难,基于百度的翻译,然后自己再调整下,水平实在有限。
3 技术背景知识不够,有些专有名词不知道怎么翻译,也不知道百度翻译的是否准确,功夫在诗外。
4 万事开头难,中间难不难,还不知道。中间的事后面再说,正确一天翻译一篇。
5 虽然可能会有人不屑,但总要有人去做不起眼的小事。
6 google 厉害,这个perfetto 工具也很厉害。君子善假于物也。
7 工具的使用是最简单的入门,背后还有更多的东西值得学习。
8 水平实在有限,闻过则喜,希望有更多的人反馈,期待更好的建议