我在使用愚蠢的SourceKitService时遇到了很多麻烦。它有时占用20GB的内存,这意味着我的lapTop几乎没用,它太慢了。我正在使用xCode 6.4并在Swift中工作。我正在开展一个大型项目,所以我确信这会导致这个问题。
但我只是想知道是否有人找到了驯服SourceKit野兽并阻止它失去控制并夺走我的全部记忆?
答案 0 :(得分:2)
我在XCode 7中遇到了这个问题,在升级到XCode 8之后它仍然存在。在我的情况下,我将其缩小为一些调用数据库包装器(GRDB)的代码,如下所示:
db.execute(sqlStatement,arguments:["ParamNameA":someValueA,"ParamNameB":someValueB]);
如果参数字典中的元素数量超过20,则SourceKitService内存使用情况变得严格(15 GB或更多),编译时间超过10分钟。如果元素数小于或等于20,则SourceKitService的内存使用量低于200 MB,编译时间为几秒钟。
我建议查找一些代码,这些代码包含超过20个元素的字典,并将它们注释掉以查看问题是否消失。