App 发热、耗电快、卡顿——这些问题很多都和 CPU 使用率有关。监控 CPU 占用是性能优化的第一步,但 iOS 的 CPU 指标有一些容易误解的地方,比如多核数值超过 100% 是正常现象。

iOS CPU 监控的基本概念

iOS 设备使用多核处理器。以 A15 芯片为例有 6 个核心(2 性能核 + 4 能效核),A17 Pro 有 6 个核心。CPU 监控显示的占用率是所有核心使用率之和,所以单 App 占用率可以超过 100%。比如一个进程占用了 2 个核心满负荷,显示的就是 200%,这不是异常。

系统总 CPU 反映设备整体负载,是所有进程核心占用率的总和。判断性能瓶颈时,结合 App 占用率和系统总 CPU 一起看更准确。如果 App 占用不高但系统总 CPU 很高,说明问题可能出在其他进程或系统服务。

Xcode 的 CPU 监控

Xcode 的 Debug Navigator 可以实时查看 App 的 CPU 和内存使用情况,以柱状图展示。Instruments 的 Time Profiler 模板功能更强,可以定位到具体函数的 CPU 消耗。运行后显示调用栈,按耗时排序。Time Profiler 的优势是能看到代码层面的热点,缺点是每次分析需要配置和启动,适合做深度优化。

KeyMob 的 CPU 监控功能

KeyMob 的 CPU 监控在性能图表模块里。连接设备后点击性能图表,在指标下拉框里勾选 CPU,点击"选择 App"选择目标进程,勾选"系统总 CPU"做同屏对比。

监控启动后,曲线图会实时显示各进程和系统总 CPU 的变化趋势。实时数据展示最近一分钟的数据。点击保存后,数据会存为 JSON 文件,在性能历史模块打开时可以按时间轴缩放,精确定位高负载时段。

关键用例:App 启动时 CPU 短暂飙高是正常的,但如果持续超过 80-100% 且伴随着卡顿,说明有热点代码需要优化。滑动列表时 CPU 持续升高,可能是 Cell 复用机制出了问题或者布局计算过于复杂。后台 CPU 活跃。App 切到后台后 CPU 占用应该接近 0,如果后台持续占用 CPU,可能是后台定时器未清理或定位服务一直在运行。

多进程对比分析可以同时勾选几个关键 App。比如同时监控游戏 App 和音乐播放器,分析后台进程对前台性能的影响。

CPU 数据的解读

苹果 A 系列芯片的性能核和能效核分工不同。性能核处理高负载任务,能效核处理后台和轻量任务。CPU 占用率 300% 意味着平均每个核心使用了 50% 的容量。短期峰值正常,长期高于 80% 可能导致发热。

在 KeyMob 里勾选 CPU 的同时也可以勾选内存和 FPS,把多项指标放在同一时间线上看。比如 FPS 掉帧的同时 CPU 飙高,基本可以确定卡顿是 CPU 瓶颈导致。