Native App Performance技能使用说明
2026-04-01
新闻来源:网淘吧
围观:21
电脑广告
手机广告
原生应用性能分析(仅限命令行)
目标:通过xctrace记录时间分析器数据,提取样本,进行符号化处理,并在不打开Instruments的情况下提出热点建议。
快速开始(命令行)
- 记录时间分析器数据(附加到已有进程):
# Start app yourself, then attach
xcrun xctrace record --template 'Time Profiler' --time-limit 90s --output /tmp/App.trace --attach <pid>
- 记录时间分析器数据(启动新进程):
xcrun xctrace record --template 'Time Profiler' --time-limit 90s --output /tmp/App.trace --launch -- /path/App.app/Contents/MacOS/App
- 提取时间样本:
scripts/extract_time_samples.py --trace /tmp/App.trace --output /tmp/time-sample.xml
- 获取符号化所需的加载地址:
# While app is running
vmmap <pid> | rg -m1 "__TEXT" -n
- 符号化处理 + 热点排序:
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 record和xcrun 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。

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


微信扫一扫,打赏作者吧~