RunLoop 方案在多维度上更适合线上长期运行:
- 高精度:单次阻塞超过阈值即可被毫秒级捕获,不会被平均掩盖。
- 强根因定位:超时即捕获完整主线程堆栈,配合 dSYM 可还原到具体代码行。
- 低性能开销:Observer 回调极轻,仅在卡顿时才进行额外处理。
- 直接对应主线程事件循环:覆盖 I/O、死锁、复杂计算、UI 渲染等典型阻塞源。
- 便于上报:堆栈与上下文可直接异步上报至服务端做聚合分析。
相比 Ping 线程的漏采和 FPS 的无堆栈缺陷,RunLoop 方案显然是兼顾精度、定位和性能的最佳选择。




