前言:虽然有翻译软件,虽然有chatgpt,毕竟语言隔阂,对这个工具还是一知半解,因此想通过翻译的方式和大家来一起学习下Perfetto这个强大的工具
Perfetto 翻译第一篇
Perfetto 翻译第二篇
Perfetto 翻译第三篇
Perfetto 翻译第四篇
Perfetto 介绍第五篇
Perfetto 翻译第六篇
Perfetto 翻译第七篇
#####################以下分割线#####################
英文原文在这里
前提条件
ADB已安装。
抓取CPU profile
Linux / Mac os
首先确保adb 已经在环境变量Path中
adb devices -l
如果连接了多个设备或模拟器,则必须按照以下方式提前选择一个:
export ANDROID_SERIAL=SER123456
如果没有安装perfetto,下载好 cpu_profile
脚本
curl -LO https://raw.githubusercontent.com/google/perfetto/main/tools/cpu_profile
chmod +x cpu_profile
之后就可以开始profiling,比如如果要profile processes com.android.foo
和com.android.bar这两个进程
./cpu_profile -n "com.android.foo,com.android.bar"
默认情况下,profiling一直运行直到手动终止。如要设置特定的录制持续时间(例如30秒),请使用:
./cpu_profile -n "com.android.foo,com.android.bar" -d 30000
要更改采集的记录频率(例如每秒120个样本),请设置-f参数:
./cpu_profile -n "com.android.foo,com.android.bar" -f 120
也可以启动--partial-matching/-p 这个参数,然后就可以只传入进程名的一部分。这与启动profiling时已在运行的进程相匹配
例如,要profiling进程com.android.foo和com.android.bar,可以这样:
./cpu_profile -n "foo,bar" -p
还可以使用-c参数传入自定义Perfetto配置,该配置将覆盖上面的所有选项:
./cpu_profile -c "path/to/perfetto.config"
要更改配置文件的输出位置,请使用-o参数:
./cpu_profile -n "com.android.foo,com.android.bar" -o "path/to/output/directory"
Windows
首先确保adb 已经在环境变量Path中
set PATH=%PATH%;%USERPROFILE%\Downloads\platform-tools
adb devices -l
如果连接了多个设备或模拟器,则必须按照以下方式提前选择一个:
set ANDROID_SERIAL=SER123456
下载好 cpu_profile,然后开始profiling。比如要profile 进程com.android.foo 和 com.android.bar。可以这样做]
python3 /path/to/cpu_profile -n "com.android.foo,com.android.bar"
更多参数的使用请前面的参考linux 和Mac OS部分
符号化
如果收集到的profiles缺少符号,则可能需要对其进行符号化。有关如何执行此操作的更多详细信息,请参阅这里。
例如,要对进程com.android.foo的profiles进行profile和符号化,运行如下命令:
PERFETTO_SYMBOLIZER_MODE=index PERFETTO_BINARY_PATH=path/to/directory/with/symbols/ ./cpu_profile -n "com.android.foo"
查看profile
将原始trace或符号化的trace从输出目录上载到Perfetto UI,然后在要profile的进程上,单击并拖动UI轨迹中名为“Perf Samples”的一个或多个菱形标。每个菱形标记表示时间线上该点的调用堆栈的快照。
cpu_profile还将为它在输出目录中描述的每个进程编写单独的概要文件,这些概要文件可以使用pprf进行可视化。
#####################以上分割线#####################
后记:
1 本次主要使用百度翻译,虽然被骂,但至少翻译这个工具降低了门槛。
2 英文文档中的长难句真的是又长又难,基于百度的翻译,然后自己再调整下,水平实在有限。
3 技术背景知识不够,有些专有名词不知道怎么翻译,也不知道百度翻译的是否准确,功夫在诗外。
4 万事开头难,中间难不难,还不知道。中间的事后面再说,正确一天翻译一篇。
5 虽然可能会有人不屑,但总要有人去做不起眼的小事。
6 google 厉害,这个perfetto 工具也很厉害。君子善假于物也。
7 工具的使用是最简单的入门,背后还有更多的东西值得学习。
8 水平实在有限,闻过则喜,希望有更多的人反馈,期待更好的建议
网友评论