👉🏻 原文链接
原因
通过 TimeProfiler 对关键函数进行耗时埋点,发现有两个函数耗时较多:
一个是 SwiftASTContext 类的 GetCompileUnitImportsImpl 方法,这个方法主要是解析当前编译单元与 Module 相关的操作,另一个则是在某一个变量如果是 Any 类型,则需要对其进行解析,找到其类型相关的操作,而最终这两个函数的操作都与当前工程的二进制依赖分析有关系。所以,如果能减少在断点命中后对依赖的分析,那么断点时间就会越快。
解决方案
从两个配置项着手,在命中任意断点时执行以下两个命令:
settings set target.memory-module-load-level minimal
settings set symbols.use-swift-clangimporter false