核心用法
Native App Performance skill 提供完整的命令行性能分析工作流,无需打开 Instruments UI。核心能力包括:
1. 录制 Trace:通过 xcrun xctrace record 附加到运行进程(--attach <pid>)或直接启动应用(--launch -- /path/to/binary),使用 Time Profiler 模板采集 90 秒样本
2. 提取样本:使用 extract_time_samples.py 从 .trace 包中导出结构化 XML 数据
3. 符号化与热点分析:结合 vmmap 获取运行时 __TEXT 段加载地址(处理 ASLR),通过 top_hotspots.py 调用 atos 符号化并排序 Top 30 热点
显著优点
- CI/CD 友好:纯 CLI 流程,可无缝集成自动化构建与性能回归测试
- 精确符号化:通过运行时 load address 解决 ASLR 问题,确保符号准确解析
- 灵活触发:支持 attach 已运行进程或 launch 新实例,覆盖调试与生产场景
- 低开销:Time Profiler 采样频率对应用性能影响极小
潜在局限
- 仅限 Apple 生态:依赖
xcrun xctrace、vmmap、atos等 macOS/iOS 专属工具链 - 符号匹配敏感:必须使用录制时的精确二进制版本,重建后需重新采集
- 手动地址处理:需手动通过
vmmap获取 load address,无法自动解析 - 模板固定:当前仅支持 Time Profiler,未覆盖 Allocations、System Trace 等模板
适合人群
- macOS/iOS 原生应用开发者与性能工程师
- 需要自动化性能测试的 DevOps/CI 工程师
- 习惯终端工作流、追求高效分析的技术团队
常规风险
- ASLR 计算错误:误用编译时地址而非运行时 load address 会导致符号化失败或错误归因
- 版本不匹配:二进制更新后未同步 trace 路径,产生无效符号输出
- 采样偏差:Time Profiler 基于中断采样,可能遗漏短时高频调用;捕获时长不足或触发路径不当会导致热点遗漏
- 权限问题:
xctrace附加进程可能需要系统完整性保护(SIP)配置或开发者工具授权