诊断决策树:CPU 高则优化算法,CPU 低则排查等待
deep_candidateArt(Xcode)和 Harjas(Instruments)开场:CPU 100%→代码过慢(优化或 offload),CPU 低→线程等资源(File I/O、锁、IPC)。三个问题的 note-taking app 案例。
正在接入 Apple HLS 视频源…
Art(Xcode)和 Harjas(Instruments)开场:CPU 100%→代码过慢(优化或 offload),CPU 低→线程等资源(File I/O、锁、IPC)。三个问题的 note-taking app 案例。
OSSignpost 标记 lasso 区间。CPU 100%→代码过慢。Time Profiler 采样原理。Flame graph 可视化。Top Functions 新模式聚合分散运行时开销。
Top Functions 发现 swift_project_boxed_opaque_existential。Xcode coding assistant 改为 concrete types。Run Comparisons 跨 trace 对比性能增量——绿色改善、红色退化。
Swift executors instrument(Instruments 27 新增)可视化 Main Actor 负载。@concurrent 将任务移到 global executor,释放 UI 线程并实现并行渲染。
System Trace 可视化线程 running/blocked/runnable。Inspector 显示系统调用参数——写入 1.7GB。用 Swift Task 将 I/O 移到后台消除阻塞。三种问题全部解决。
卡顿时先查 CPU:高→代码过慢(优化或 offload),低→线程等资源(File I/O、锁、IPC)。Time Profiler 看不到 CPU 低时的阻塞事件。
Flame graph 按调用栈分布时间,但公用函数耗时被分散。Top Functions 按 self weight 聚合,精确定位 existential 解包瓶颈。
自动匹配 baseline 和 optimized trace 中的函数版本计算 delta。绿色改善、红色退化。existential→generics 改动后相关调用被消除。
Swift executors 显示 Main Actor 任务分布。System Trace 可视化线程三态。Inspector 显示系统调用参数和写入大小。
性能诊断必须以 release build 和明确 signpost 为基础,否则 trace 很容易混入调试开销或无法对应用户操作。268 把工具使用提升为可复现流程。
CPU 饱和→Top Functions + Run Comparisons。Actor 拥塞→Swift executors + @concurrent。系统阻塞→System Trace + Inspector。方法论:release build + OSSignpost 标记。(本 session 在全局地图中的位置:performance 方法论——与 243(agentic observability)互补,覆盖 AI 动态体验的性能闭环。)