CLI-only native app performance profiling via xctrace/Time Profiler—record, extract, symbolicate, and rank hotspots without Instruments UI, ideal for CI/CD automation.
说明:
## 核心用法
Native App Performance skill 提供完整的命令行性能分析工作流,无需打开 Instruments UI。核心能力包括:
1. **录制 Trace**:通过 `xcrun xctrace record` 附加到运行进程(`–attach `)或直接启动应用(`–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)配置或开发者工具授权








