网淘吧来吧,欢迎您!

Native App Performance技能使用说明

2026-04-01 新闻来源:网淘吧 围观:21
电脑广告
手机广告

原生应用性能分析(仅限命令行)

目标:通过xctrace记录时间分析器数据,提取样本,进行符号化处理,并在不打开Instruments的情况下提出热点建议。

快速开始(命令行)

  1. 记录时间分析器数据(附加到已有进程):
# Start app yourself, then attach
xcrun xctrace record --template 'Time Profiler' --time-limit 90s --output /tmp/App.trace --attach <pid>
  1. 记录时间分析器数据(启动新进程):
xcrun xctrace record --template 'Time Profiler' --time-limit 90s --output /tmp/App.trace --launch -- /path/App.app/Contents/MacOS/App
  1. 提取时间样本:
scripts/extract_time_samples.py --trace /tmp/App.trace --output /tmp/time-sample.xml
  1. 获取符号化所需的加载地址:
# While app is running
vmmap <pid> | rg -m1 "__TEXT" -n
  1. 符号化处理 + 热点排序:
scripts/top_hotspots.py --samples /tmp/time-sample.xml \
  --binary /path/App.app/Contents/MacOS/App \
  --load-address 0x100000000 --top 30

工作流程注意事项

  • 始终确认您正在分析正确的二进制文件(本地构建版本 vs /Applications中的版本)。建议为--launch使用直接的二进制文件路径。
  • 确保在捕获过程中触发慢速路径(如菜单打开/关闭、刷新等操作)。
  • 如果堆栈为空,请延长捕获时间或避免空闲时段。
  • xcrun xctrace help recordxcrun xctrace help export可显示正确的参数标志。

包含的脚本

  • scripts/record_time_profiler.sh: 通过附加或启动进行录制。
  • scripts/extract_time_samples.py: 从跟踪记录中导出时间样本XML。
  • scripts/top_hotspots.py: 符号化并排序顶部应用帧。

注意事项

  • ASLR意味着你必须使用运行时__TEXT段的加载地址,该地址来自vmmap
  • 如果使用新构建版本,请更新--binary路径;符号必须与跟踪记录匹配。
  • 仅限CLI流程:如果通过atos符号化堆栈,则无需打开Instruments。

Native App Performance

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏

文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第394089名访客 今日有1篇新文章/评论