Swift 开发效率高是高,可是编译速度慢啊

2017-10-30 19:22:24 +08:00
 banxi1988
改一行代码再编译需要 5 到 15 分钟. (这还是有增量编译的)
2014 Mid 版的 MBP (16G 内存 2.2GHz Intel i7)
现在项目中写代码再也没有一开始的写代码的爽快感了. 另外就是 SourceKitService 内存泄漏问题严重,内存占用动不动就飙到 10 多 G 去了. 经常导致 Xcode 失去响应, 有时一天下来得强制关闭 Xcode 好多次,根本无法好好的写代码.

PS: 听说 Go 语言编译速度快, 我感觉我想转行了.
PS2: 看来下次老板再说我写代码慢, 我得要求换电脑了.
9247 次点击
所在节点    iDev
17 条回复
Ixizi
2017-10-30 23:22:44 +08:00
swift 其实理论上编译速度比 oc 快的。 为什么慢,因为你用了 cocoapods 或者导入了 oc 库。
nl101531
2017-10-31 07:30:10 +08:00
最近也在学习,觉得好多神奇的语法糖。。。
toono
2017-10-31 09:23:03 +08:00
楼主用 swift 写服务端?
banxi1988
2017-10-31 09:26:28 +08:00
@Ixizi 理论上编译速度就慢了. 我自己实测过,有时一行代码,我说的是一行代码,光是类型检查就花了 1s 多的时间,是 1s 多.一行代码.
另外提供其他一些文章看看,你们可以亲自测试一下:

https://medium.com/@RobertGummesson/regarding-swift-build-time-optimizations-fc92cdd91e31
https://medium.com/swift-programming/swift-build-time-optimizations-part-2-37b0a7514cbe
https://medium.com/@johnsundell/improving-swift-compile-times-ee1d52fb9bd

这样你就会明白为什么我认为理论上 Swift 比 OC 慢了.
banxi1988
2017-10-31 09:27:33 +08:00
@toono 客户端, 以前还想着用它可以写服务端,要是编译速度上不去, 我看还是用 Go 好.
Ehco1996
2017-10-31 09:30:56 +08:00
歪个楼
js python 这种脚本语言才叫快呢
webfrogs
2017-10-31 09:48:20 +08:00
这样明年 WWDC 时候,苹果就可以拍胸脯说,我们对编译器优化了 XX%
toono
2017-10-31 09:50:49 +08:00
@webfrogs

sleep(10) --> sleep(5)

优化 50%完成✅
gunavy
2017-11-02 10:39:26 +08:00
@Ixizi swift3,一个表达式卡十分钟,换个方式就没事。也没 oc 什么事情!
harrishan
2017-11-03 09:45:36 +08:00
装台高配黑苹果吧
fghjghf
2017-11-03 09:53:48 +08:00
不是兴趣而是当作求职技能的话,转行吧。移动端开发尤其是 ios 开发早已烂成狗。
BiuBiuBiuX
2017-12-01 20:21:43 +08:00
加内存条,一定要内存大,把 xcode 编译文件扔内存盘里
free9fw
2017-12-04 18:03:44 +08:00
Xcode-File-Workspace Setting-New Build System
kemchenj
2017-12-25 20:10:05 +08:00
Swift 社区活跃的真相 —— 都在等编译😂
rainex
2018-01-11 15:13:17 +08:00
不用声明类型之类的这些所谓的开发者友好,编译器要自己做判断当然会慢,C++不如 C 的编译速度快也是类似道理,项目越大越慢。

16G 内存不用加了,瓶颈不在这里,mac 瓶颈一般就卡在两个地方,一个是硬盘必须 ssd,另一个是 cpu 主频。

你主频 2.x 而且又是笔记本低压 cpu,现在跑 Xcode 很难流畅,mac 就这烂样,同等硬件性能比 windows 低 20%都正常。

想 Xcode 流畅就台式机,ssd 硬盘,cpu 主频 3.5G 以上,内存其实 8G 16G 相差不太大的
rainex
2018-01-11 15:15:15 +08:00
特别说下,以 Xcode 来说,同等预算,cpu 主频比多核重要,也就是说同等预算优先考虑高频的 i3,虐低频的 i5 i7 没问题,实际比较过
Tardis0127
2018-01-18 21:26:54 +08:00
@rainex 双核高频虐四核? 编译没开多线程?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/402041

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX