如何通过USB或网络持续捕获Perfetto Trace至PC,规避本地存储影响
通过USB/网络捕获Perfetto Trace并实时传输至PC
完全可以实现通过USB或网络实时捕获Perfetto Trace并传输到PC,避免本地磁盘写入对长时间测试的影响,具体操作如下:
USB方式(基于ADB端口转发)
适合设备通过USB连接PC的场景,无需额外网络配置:
- 在PC上启动ADB端口转发,将设备的9001端口映射到PC的9001端口:
adb forward tcp:9001 tcp:9001 - 在PC上启动数据接收进程,将传输的Trace流保存到本地文件:
nc localhost 9001 > long_test_trace.perfetto-trace - 在设备上启动Perfetto,指定输出到本地映射的端口(无需写入设备磁盘):
# 替换为你的配置文件路径,比如系统默认的system_trace_config.pbtxt perfetto -c /data/misc/perfetto-configs/system_trace_config.pbtxt --out tcp:localhost:9001 - 测试结束后,先终止设备端的Perfetto进程,再停止PC端的nc进程即可完成捕获。
网络方式(直接局域网传输)
适合设备和PC在同一局域网的无线场景:
- 确认PC的局域网IP(比如
192.168.3.10),并确保PC防火墙开放目标端口(比如9001)。 - 在PC上启动数据接收进程:
nc -l 9001 > long_test_trace.perfetto-trace - 在设备上启动Perfetto,直接将Trace流发送到PC的IP和端口:
perfetto -c /data/misc/perfetto-configs/system_trace_config.pbtxt --out tcp:192.168.3.10:9001 - 测试结束后,终止设备端Perfetto和PC端nc进程即可。
关键注意事项
- 配置文件优化:长时间测试建议精简捕获的事件类型(如只保留必要的CPU、内存或测试相关的trace点),避免数据量过大导致传输卡顿。
- 权限问题:部分高级Trace事件需要设备Root权限,若无需Root,可使用
system_trace_config.pbtxt这类默认配置,覆盖常用的系统和应用trace点。 - 稳定性:长时间传输建议确保USB连接稳定或局域网信号良好,避免中途断开导致Trace文件损坏。
内容的提问来源于stack exchange,提问作者Kevin Ding
相关产品推荐
相关产品推荐

