You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Yocto中远程使用perf进行性能分析的方法咨询

实现远程Perf性能分析的解决方案(Xilinx Yocto Langdale版本)

步骤1:为目标端构建轻量版Perf工具

针对性能较弱的目标端,仅保留perf record核心功能以减小体积:

  • 在Yocto构建目录的local.conf中添加配置:
    IMAGE_INSTALL:append = " perf"
    PERF_FEATURES:remove = "trace probe dwarf unwind" # 禁用非必要功能,压缩工具体积
    
  • 单独编译并提取Perf二进制,无需烧录完整镜像:
    bitbake perf -c compile -c install
    
    从tmp/deploy/rpm/[目标架构]/(或对应包格式目录)取出perf二进制文件,通过scp推送到目标端即可。

步骤2:在主机端保留调试符号

确保构建时生成并保留调试符号,用于后续主机端分析:

  • 在local.conf中开启调试符号生成:
    DEBUG_BUILD = "1"
    PACKAGE_DEBUG_SPLIT_STYLE = "debug-file-directory"
    
  • 将目标端的可执行文件、库文件,以及tmp/work/[目标架构]/[对应配方]/[版本]/image/usr/lib/debug下的调试符号,同步到主机端的某个目录(比如~/target-debug/),保持路径与目标端完全一致(例如目标端/usr/bin/app对应主机端~/target-debug/usr/bin/app,调试符号放在~/target-debug/usr/lib/debug/usr/bin/app.debug)。

步骤3:远程Perf分析流程

  1. 目标端录制性能数据:
    在目标端执行录制命令,可将输出写入外部存储避免占用内存:
    perf record -g -o /mnt/usb/perf.data -- /path/to/your/application
    
    (-g用于记录调用栈,-F可指定采样频率,按需调整参数)
  2. 传输数据到主机端:
    scp root@[目标端IP]:/mnt/usb/perf.data ~/perf-analysis/
    
  3. 主机端生成性能报告:
    使用主机端Perf工具,指定调试符号路径进行分析:
    perf report -i ~/perf-analysis/perf.data --symfs ~/target-debug/
    

步骤4:构建主机端兼容的Native Perf

若主机端自带Perf与目标端版本不兼容,用Yocto构建适配的Native Perf:

  • 在local.conf中添加:
    BB_GENERATE_MIRROR_TARBALLS = "1"
    
  • 编译Native Perf:
    bitbake perf-native
    
    从tmp/deploy/tools/perf-native/提取二进制文件,添加到主机端PATH即可使用。

额外优化建议

  • 避免频繁烧录镜像:仅推送Perf二进制和更新后的可执行文件到目标端,减少构建与烧录耗时。
  • 缓解目标端内存压力:将Perf录制数据直接写入USB等外部存储,无需挂载交换分区。

内容的提问来源于stack exchange,提问作者Kees-Jan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 03:27:09