SuperAPI AI 工具集

swift-concurrency-performance

通用与其它

查看项目

更新于 10-16 00:01

技能介绍

用途:审查、诊断并改进 Swift Concurrency 代码,重点在异步工作对 UI 响应、吞吐、内存、取消、任务生命周期、actor 争用或高负载正确性的影响。这不是 Swift Concurrency 入门教程,而是性能与响应性审查流程。

适用场景:异步导致的 UI 卡顿、交互变慢、挂起或掉帧;Task、任务组、detached task 或不结构化并发过多;MainActor 瓶颈、actor 跳转与队列堆积;取消失效、导航泄漏、任务超出所有者生命周期;AsyncSequence/AsyncStream 缓冲与生产者清理;continuation 桥接、回调包装;async 上下文中的阻塞调用、信号量、同步 I/O、锁或协作线程池饥饿;actor 重入、重复在途工作、缓存击穿;Swift 6 隔离、@concurrent、nonisolated、Sendable 边界;Instruments 轨迹或日志指向并发相关延迟、内存增长或吞吐下降。

主要能力:核心流程为识别用户可见症状,定位异步边界与生命周期所有者,区分必需与可延迟工作,检查是否用并发表达结构、隔离与取消而非笼统提速,检查阻塞调用、UI 状态隔离与 CPU 密集工作是否离开主 actor,检查取消传播与 actor 每次 await 后的重入,提出最小安全改动并给出验证路径。决策规则包括:async 是挂起而非自动后台执行;并发不必然提升性能;父任务拥有生命周期时优先结构化并发;Task.detached 仅作明确逃生舱;并行工作需有界;MainActor 工作保持短小;热路径批量 actor 调用;await 后假设 actor 状态已变;默认使用 checked continuation 并确保恰好恢复一次;流终止与生产者清理属于 API 契约。

参考路由:按需查阅 concurrency-runtime、mainactor-responsiveness、task-lifetime-and-structure、cancellation-and-task-lifetime、bounded-task-groups、actor-reentrancy、swift-6-isolation、blocking-legacy-apis、continuation-safety、asyncsequence-and-stream-cleanup、diagnostics-and-instruments 等文档。

验证:按疑似问题选择 Instruments、signposts、取消测试、内存图/分配工具、带任务或请求标识的日志、XCTest 性能测试或生产指标;无明确验证路径不得宣称性能提升。

输出期望:代码审查按 Finding、Why it matters、Evidence、Recommended change、Trade-offs、Validation 组织;调查计划给出复现症状、疑似异步边界、生命周期或隔离所有者、首个轨迹或日志、确认或否定假设的信号、下一步最小编码检查区域。

限制:不适合基础 async/await 语法问题、与并发无关的架构讨论、纯 SwiftUI 渲染问题;相关领域可改用 ios-launch-performance、swiftui-performance、ios-performance-profiling、swift-runtime-performance。避免无证据加 Task、误用 Task.detached 掩盖隔离错误、大集合无界子任务、宽泛 catch 吞掉取消等常见陷阱。