2024年10月30日 第36讲 Perfetto 自动化之Trace Processor介绍 极客笔记
本讲是Android Camera性能分析专题的第36讲,我们介绍Perfetto 自动化之Trace Processor介绍。
更多资源:
资源 | 描述 |
---|---|
在线课程 | 极客笔记在线课程 |
知识星球 | 星球名称:深入浅出Android Camera 星球ID: 17296815 |
极客笔记圈 |
Trace Processor是一个C++库
输入:各种格式编码的Trace
输出:SQL接口
这个库被嵌入到很多Trace分析工具中
trace_processor 二进制文件
Perfetto UI, 作为一个WebAssembly模块
Android GPU Inspector
Android Studio
可以到Github上下载基于Linux或Mac的可执行文件,单独运行:
# Download prebuilts (Linux and Mac only)
curl -LO https://get.perfetto.dev/trace_processor
chmod +x ./trace_processor
# Start the interactive shell
./trace_processor trace.perfetto-trace
示例:
也可以用本地的trace_processor替换掉Perfetto UI中的trace_processor,执行如下命令
# Start a local trace processor instance to replace wasm module in the UI
./trace_processor trace.perfetto-trace --httpd
使用本地的trace_processor, Perfetto UI通过TCP与之通信好处:
无WASM 的内存限制,特别适用于加载大文件的Trace
SQL 查询的性能更好
可以执行如下命令,运行Metrics
# 运行一个Metrics
./trace_processor --run-metrics android_cpu trace.perfetto-trace
# 同时运行多个Metrics
./trace_processor --run-metrics android_mem,android_cpu trace.perfetto-trace
# 输出binary格式(protobuf)
./trace_processor --run-metrics android_mem --metrics-output=binary trace.perfetto-trace
# 输出JSON格式
./trace_processor --run-metrics android_mem,android_cpu --metrics-output=json trace.perfetto-trace
为什么不能直接使用PID/TID
Trace Processor使用utid(unique tid))和upid(unique pid)来唯一标识线程和进程。
本文链接:http://so.lmcjl.com/news/16600/