SourceKitService吸取内存并将所有进程停止

vil*_*393 6 io xcode sourcekit swift

我在使用愚蠢的SourceKitService时遇到了很多麻烦.它有时占用20GB的内存,这意味着我的lapTop几乎没用,它太慢了.我正在使用xCode 6.4并在Swift中工作.我正在开展一个大型项目,所以我确信这会导致问题.

但我只是想知道是否有人找到了驯服SourceKit野兽并阻止它失去控制并占据我的全部记忆?

小智 2

我在 XCode 7 中遇到了这个问题,升级到 XCode 8 后它仍然存在。在我的例子中,我将其范围缩小到一些调用数据库包装器 (GRDB) 的代码,如下所示:

db.execute(sqlStatement,arguments:["ParamNameA":someValueA,"ParamNameB":someValueB]);
Run Code Online (Sandbox Code Playgroud)

如果参数字典中的元素数量超过 20,SourceKitService 内存使用量就会变得疯狂(15 GB 或更多),并且编译时间将超过 10 分钟。如果元素数量小于或等于 20,则 SourceKitService 的内存使用量低于 200 MB,编译时间为几秒。

我建议查找包含超过 20 个元素的字典的代码,并将它们注释掉,看看问题是否消失。