美文网首页perfetto 官方文档翻译
Perfetto 翻译第八篇-快速入门-调用堆栈采样

Perfetto 翻译第八篇-快速入门-调用堆栈采样

作者: David_zhou | 来源:发表于2023-09-26 23:05 被阅读0次

    前言:虽然有翻译软件,虽然有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.png

    cpu_profile还将为它在输出目录中描述的每个进程编写单独的概要文件,这些概要文件可以使用pprf进行可视化。

    #####################以上分割线#####################

    后记:
    1 本次主要使用百度翻译,虽然被骂,但至少翻译这个工具降低了门槛。
    2 英文文档中的长难句真的是又长又难,基于百度的翻译,然后自己再调整下,水平实在有限。
    3 技术背景知识不够,有些专有名词不知道怎么翻译,也不知道百度翻译的是否准确,功夫在诗外。
    4 万事开头难,中间难不难,还不知道。中间的事后面再说,正确一天翻译一篇。
    5 虽然可能会有人不屑,但总要有人去做不起眼的小事。
    6 google 厉害,这个perfetto 工具也很厉害。君子善假于物也。
    7 工具的使用是最简单的入门,背后还有更多的东西值得学习。
    8 水平实在有限,闻过则喜,希望有更多的人反馈,期待更好的建议

    相关文章

      网友评论

        本文标题:Perfetto 翻译第八篇-快速入门-调用堆栈采样

        本文链接:https://www.haomeiwen.com/subject/jzfqbdtx.html