SuperAPI AI 工具集

axiom-concurrency-profiling

通用与其它

查看项目

更新于 10-15 20:11

技能介绍

用途:在怀疑并发是瓶颈时,用 Instruments 的 Swift Concurrency 模板分析并优化 Swift async/await 代码。适用场景包括异步操作导致 UI 卡顿、怀疑 actor 争用、任务排队却不执行、主线程被异步工作阻塞、需要可视化任务执行流。若问题属于纯 CPU 性能或与并发无关的内存问题,或尚未确认并发是瓶颈,则不适合使用。

主要能力:Swift Concurrency 模板可展示 Swift Tasks(任务生命周期与父子关系)、Swift Actors(actor 访问与争用可视化)、Thread States(阻塞/运行/挂起),并提供运行中任务、存活任务、累计任务数等统计;颜色上蓝色为执行、红色为等待(争用)、灰色为挂起。

使用方式:按症状选择工作流。主线程阻塞时查看主线程 Swift Tasks 泳道的长蓝条,考虑用 Task.detached 卸载重活;actor 争用时启用 Swift Actors 观察红蓝比例,可用 nonisolated、拆分 actor、Mutex 或缩小 actor 范围;线程池耗尽时寻找任务执行空隙并移除阻塞调用,改用异步 API;优先级反转时检查任务优先级与等待链。调试可用 SWIFT_CONCURRENCY_COOPERATIVE_THREAD_BOUNDS=1 检测异步上下文中的不安全阻塞。

限制:Swift 使用与 CPU 核数匹配的协作线程池,阻塞调用会耗尽线程池并导致死锁;DispatchSemaphore.wait()、pthread_cond_wait、同步文件/网络 I/O、Task 中的 Thread.sleep() 均不安全,应改用 withCheckedContinuation 等异步等价物。避免在 await 期间持锁,避免在紧循环中创建 Task,改用 withTaskGroup。资料未提供安装命令、收费与平台信息。