SuperAPI AI 工具集

axiom-hang-diagnostics

通用与其它

查看项目

更新于 10-16 00:22

技能介绍

用途:系统性诊断与解决应用 hang(主线程阻塞超过 1 秒、界面无响应)。适用于使用中出现短暂冻结、点击无反应、系统“无响应”弹窗、Xcode Organizer 出现 hang 诊断,或收到 MetricKit MXHangDiagnostic 的场景;动画轻微卡帧可能属于 hitch,应用仅变慢但仍可响应则属于性能问题。

主要能力:区分 hang、hitch、lag;归纳两类根因——主线程忙碌(主动计算、无关工作、阻塞式 API)与主线程被阻塞(同步 IPC、文件 I/O、同步网络、锁竞争、semaphore/dispatch_sync);提供诊断决策树,依据是否有 Organizer/MetricKit 报告、能否本地复现,选择 Time Profiler 或 System Trace;并给出常见模式(主线程同步文件读写、未过滤通知观察者、重复创建 DateFormatter、DispatchQueue.main.sync、semaphore 等待异步、锁竞争、启动阶段过重、主线程图像处理)的修复思路。

使用方式:本地可复现时用 Instruments 的 Time Profiler 录制卡顿区间,观察主线程 Self Time 与调用栈;怀疑阻塞时用 System Trace 查看线程状态(运行、被抢占、阻塞)与锁竞争;仅有线上报告时查看 Xcode Organizer 的 Hangs 聚合数据;需要应用内数据时通过 MXMetricManagerSubscriber 接收 hangDiagnostics,读取 hangDuration、callStackTree、signatureIdentifier 并上报分析。同时给出 watchdog 终止的时限提示与排查清单,如避免主线程 Data(contentsOf:)、DispatchQueue.main.sync、semaphore.wait(),缓存 formatter,减少启动工作量,图像与数据库操作移出主线程。

限制:资料未提供具体工具的安装命令或依赖要求,也未说明兼容的系统版本、性能提升数据或收费信息;部分修复方案需结合项目实际验证。