问题现象
Instruments 是一套非常有用的代码分析和调试利器,我们经常用它来查找 App 中的性能瓶颈。
不过,有时 Instruments 却无法捕获到系统明显挂起或长耗时的方法,这是怎么回事呢?
如上图所示,App 运行中系统(Severe Hang)被挂起长达 3 秒钟,但在 Instruments 竟然无法找到“罪魁祸首”之所在,还有天理么!?
在本篇博文中,我们将用一个最简单的例子来向大家展示如何解决此类性能瓶颈无法定位问题的办法。
还等什么呢?Let‘s go!!!😉
问题分析
1. 用 Instruments 定位性能瓶颈
Xcode 的 Instruments 有多套模版(Template)都能用于定位性能瓶颈,因为在这里我们的 App 由 SwiftUI 承载,所以我们选择 SwiftUI 模版: