Ste*_*one 7 xcode sourcekitservice
我没问题Xcode 8.3.2和SourceKitService正在使用我所有的CPU.我在stackoverflow上阅读了很多问题,但我找不到真正的解决方案.
我尝试了什么:
没有任何效果.我理解这个问题可能与某些代码有关,但我怎样才能发现问题在哪里?我的项目很大......
目前Xcode无法使用......
谢谢你的帮助
这并不是一个"修复",因为它对那些依赖于向他们展示实时问题的人也是有害的.但是如果你去Preferences-> General并关闭"Show live issues",那么xcode就像一个很酷的春日那样的兔子.我更喜欢不得不强迫不时地退出SourceKit服务.
SourceKit 一直占用 CPU 和 RAM,速度缓慢且容易崩溃。(根据我的经验)使用 Xcode 9 会好一点。
一个大问题是 Swift 中的许多表达式都有大量重载。为了使类型推断发挥作用,所有这些都必须经过测试。这也是 Swift 代码的编译时间通常较长的原因。
一旦 SourceKit 开始处理此类表达式,其他一切都必须等待。
您可以通过避免长表达式来帮助 SourceKit,特别是在集合和序列上使用二元运算符以及map,flatMap和filter操作链时,因为解析此类表达式的返回类型的时间复杂度是指数级的。
您可以尝试通过声明变量的类型(let a: X = expr而不是let a = expr)来减少较长的类型推断时间。根据我的经验,这也有助于链map和链(而不是)filter的闭包。flatMap{ param -> Result in ...}{ param in }
您可以使用-Xfrontend -debug-time-function-bodies“其他 Swift 标志”构建设置中的标志来获取 Xcode 中构建报告中每个函数的编译时间,这可以帮助您识别编译器和 SourceKit 需要很长时间处理的表达式。详细说明可以在这篇博文中找到。
除此之外我不知道还有其他解决方案。
| 归档时间: |
|
| 查看次数: |
1215 次 |
| 最近记录: |