Swift 开发效率高是高,可是编译速度慢啊 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
banxi1988
V2EX    iDev

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

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

    PS: 听说 Go 语言编译速度快, 我感觉我想转行了.
    PS2: 看来下次老板再说我写代码慢, 我得要求换电脑了.
    17 条回复    2018-01-18 21:26:54 +08:00
    Ixizi
        1
    Ixizi  
       2017-10-30 23:22:44 +08:00
    swift 其实理论上编译速度比 oc 快的。 为什么慢,因为你用了 cocoapods 或者导入了 oc 库。
    nl101531
        2
    nl101531  
       2017-10-31 07:30:10 +08:00 via Android
    最近也在学习,觉得好多神奇的语法糖。。。
    toono
        3
    toono  
       2017-10-31 09:23:03 +08:00
    楼主用 swift 写服务端?
    banxi1988
        4
    banxi1988  
    OP
       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
        5
    banxi1988  
    OP
       2017-10-31 09:27:33 +08:00
    @toono 客户端, 以前还想着用它可以写服务端,要是编译速度上不去, 我看还是用 Go 好.
    Ehco1996
        6
    Ehco1996  
       2017-10-31 09:30:56 +08:00 via iPhone
    歪个楼
    js python 这种脚本语言才叫快呢
    webfrogs
        7
    webfrogs  
       2017-10-31 09:48:20 +08:00
    这样明年 WWDC 时候,苹果就可以拍胸脯说,我们对编译器优化了 XX%
    toono
        8
    toono  
       2017-10-31 09:50:49 +08:00
    @webfrogs

    sleep(10) --> sleep(5)

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

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

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

    想 Xcode 流畅就台式机,ssd 硬盘,cpu 主频 3.5G 以上,内存其实 8G 16G 相差不太大的
    rainex
        16
    rainex  
       2018-01-11 15:15:15 +08:00
    特别说下,以 Xcode 来说,同等预算,cpu 主频比多核重要,也就是说同等预算优先考虑高频的 i3,虐低频的 i5 i7 没问题,实际比较过
    Tardis0127
        17
    Tardis0127  
       2018-01-18 21:26:54 +08:00
    @rainex 双核高频虐四核? 编译没开多线程?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2285 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 00:21 PVG 08:21 LAX 16:21 JFK 19:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86