手上的 19 款 MacBook Pro 编译 Rust 太慢了,有没有像 GitHub Action 这样按实际使用时间付费的高性能代编译服务? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
rv54ntjwfm3ug8
V2EX    程序员

手上的 19 款 MacBook Pro 编译 Rust 太慢了,有没像 GitHub Action 这样按实际使用时间付费的高性能代编译服务?

  •  
  •   rv54ntjwfm3ug8 2022-03-27 18:59:16 +08:00 8687 次点击
    这是一个创建于 1370 天前的主题,其中的信息可能已经有所发展或是发生改变。

    GitHub Action 编译速度比我 MacBook Pro 还慢好几倍

    搞台服务器来远程开发成本太高了,95%时间都是闲置的,而且 CLion 的远程开发体验很不好,我又不想用某个用 Electron 写的电子垃圾

    55 条回复    2022-03-29 16:52:30 +08:00
    learningman
        1
    learningman  
       2022-03-27 19:17:45 +08:00
    随便找个云服务商,写个脚本调 API 自动开机子自动销毁就行。
    wangyu17455
        2
    wangyu17455  
       2022-03-27 19:22:22 +08:00 via Android
    腾讯云,开一台临时实例,把环境装好,然后制作镜像,然后再开机子的时候就可以直接从镜像还原不用每次重新配环境,然后去腾讯云手动再过一遍开机子的流程,最后他会有个导出脚本的按钮,把脚本导出,要用的时候执行一遍脚本就可以获得按时间收费的机子了
    PureWhiteWu
        3
    PureWhiteWu  
       2022-03-27 19:27:30 +08:00   4
    建议上 M1 Max 。
    实测之前一个 Rust 的项目需要俩小时,现在只要 20 分钟。
    利益相关:前 2019 16 i9 64G 用户,现 M1 Max 64G 用户。
    findex
        4
    findex  
       2022-03-27 19:27:57 +08:00
    CI 的话推荐一下 CircleCI 比 github action 时间长。(安全性不能保,毕竟你要传代码到别人机器上进行编译)
    选择了好多款 CI ,其他还有 bitbucket 的。gitlab 也有,但是比 CircleCI ,github 编译时间少很多。

    关于楼主的
    > 我又不想用某个用 Electron 写的电子垃圾

    换个电脑吧。19 款 mbp 实在性能堪忧。m1 max/ultra 上可以交叉编译 x86/arm64 的程序。如果开发程序不是针对 macos 的,可以搭建一个 i9 12900K 的 PC 主机。还是挺刚的。
    wzw
        5
    wzw  
       2022-03-27 19:42:30 +08:00 via iPhone
    @findex 是不是需要强大的散热器
    BrettD
        6
    BrettD  
       2022-03-27 19:45:15 +08:00 via iPhone
    几年前 USENIX 有篇论文说的就是把软编译之类的任务负载放到 AWS Lambda 这种云服务上大规模平行执行,后面我记得也有人用这种想法做出来了在 AWS Lambda 平行编译 C++工程的工具,但是名字忘了
    JustSong
        7
    JustSong  
       2022-03-27 19:52:10 +08:00 via Android   12
    不喜欢可以不用,没必要说人家电子垃圾吧
    skiy
        8
    skiy  
       2022-03-27 19:52:24 +08:00
    阿里云效??? Coding ???
    huadi
        9
    huadi  
       2022-03-27 19:53:08 +08:00
    电子垃圾是啥?
    pengtdyd
        10
    pengtdyd  
       2022-03-27 19:55:59 +08:00
    M1 Max 会让你见识到什么叫速度!!!!!!!!
    Puteulanus
        11
    Puteulanus  
       2022-03-27 20:02:36 +08:00
    https://aws.amazon.com/cn/cloud9/
    有自动休眠,休眠之后后面的 EC2 应该只用给储存费用
    guaji123
        12
    guaji123  
       2022-03-27 20:10:53 +08:00
    出掉买 mac studio
    findex
        13
    findex  
       2022-03-27 20:15:05 +08:00
    @wzw 12900K 睿频官方功率 241W 。单 CPU 。我的猫头鹰 D15S 最多能压到 200W 功耗。这个 U 得上水冷吧。
    Xusually
        14
    Xusually  
       2022-03-27 20:28:38 +08:00
    @huadi 大概率是说 VSC 吧
    littlewing
        15
    littlewing  
       2022-03-27 21:18:02 +08:00
    我很好奇什么 rust 项目编译要那么久,是因为项目本身很大还是 rust 编译就慢
    m95r1jQyWNZ0uhqn
        16
    m95r1jQyWNZ0uhqn  
       2022-03-27 21:23:26 +08:00 via Android
    @littlewing 本身编译就不快,如果项目再大当然就更慢了
    junnplus
        17
    junnplus  
       2022-03-27 21:27:43 +08:00
    因为工作要写 Rust ,项目比较大,m1 max 也显得慢,所以写代码主力机是 12 代 i9 ,桌面是 m1 max ,通过 ssh 连接直接 vim 写代码
    kkocdko
        18
    kkocdko  
       2022-03-27 21:50:44 +08:00 via Android
    对于编译慢,可以看下 mold ,现代的,并行化的 linker ,比 lld 快很多。
    rust 编译慢,但大多数时候依赖的 crate 是不会重新编译的。linker 的速度很关键。
    zxCoder
        19
    zxCoder  
       2022-03-27 22:04:29 +08:00
    (讨厌编译速度慢的编程语言垃圾
    lysS
        20
    lysS  
       2022-03-27 22:19:18 +08:00
    @junnplus 推荐 VS remote
    agagega
        21
    agagega  
       2022-03-27 22:29:25 +08:00
    我以前想过这个问题,除了换电脑(或者局域网里放一台 CPU 不错的 PC )没什么好的解决方案,因为你整个构建过程生成的文件是巨大的
    GuangXiN
        22
    GuangXiN  
       2022-03-27 22:30:25 +08:00
    阿里云有 ECI ,可以像 Docker 容器一样从镜像启动,运行完了自动销毁
    junnplus
        23
    junnplus  
       2022-03-27 22:35:50 +08:00
    @lysS 谢谢,不需要,常年 vim
    2kCS5c0b0ITXE5k2
        24
    2kCS5c0b0ITXE5k2  
       2022-03-27 22:45:08 +08:00
    @huadi 估计说的 Visual Studio Code 把
    Aixiaoa
        25
    Aixiaoa  
       2022-03-27 23:09:36 +08:00
    如果身边有同事或朋友也有此种需求的话 可以考虑弄个服务器来干这种粗重的活 几个人平坦一下 费用和效率都不错
    不想放家里也可以丢 idc 机房
    MrKrabs
        26
    MrKrabs  
       2022-03-28 01:08:02 +08:00
    现在编译只信 M1
    kkocdko
        27
    kkocdko  
       2022-03-28 01:56:48 +08:00 via Android
    居然没人提到 GitHub Codespace
    dayeye2006199
        28
    dayeye2006199  
       2022-03-28 02:05:03 +08:00 via Android
    国外的话可以用 aws batch 。按使用量收费的。很多做电影搞动画的渲染工作,都是扔到上面搞得。
    neoblackcap
        29
    neoblackcap  
       2022-03-28 02:21:46 +08:00   1
    @littlewing rust 语法复杂,加上泛型代码膨胀得很快的。当然最重要的是 rust 的前端给 llvm 喂了一大堆无用的代码,加重了编译后端的工作量。
    Stop
        30
    Stop  
       2022-03-28 05:44:59 +08:00
    换 m1 吧。
    dangyuluo
        31
    dangyuluo  
       2022-03-28 06:24:27 +08:00   1
    irytu
        32
    irytu  
       2022-03-28 07:09:22 +08:00 via iPhone
    开个 aws 高配 ec2 用完删呗
    uNoBrain
        33
    uNoBrain  
       2022-03-28 08:49:46 +08:00
    @junnplus #17 不是 M1 max 编译比 intel 快吗,怎么反过来?
    devcat9
        34
    devcat9  
       2022-03-28 09:07:13 +08:00
    @BrettD
    @dangyuluo
    类似的思路还有 Bazel 吧: https://github.com/bazelbuild/rules_rust
    tomari
        35
    tomari  
       2022-03-28 09:10:44 +08:00
    现在的云服务不都是可以按需收费吗
    Hanggi
        36
    Hanggi  
       2022-03-28 09:30:02 +08:00
    什么叫 “用 Electron 写的电子垃圾”,敢说清楚点?是不是用这个电子垃圾的人都在用垃圾?
    kidlj
        37
    kidlj  
       2022-03-28 09:33:43 +08:00   5
    本来想帮忙的,看到 “用 Electron 写的电子垃圾”,拉倒吧!
    spidah
        38
    spidah  
       2022-03-28 10:17:44 +08:00
    vscode 有那么不堪?可以说说哪里不行,没必要一上来就是垃圾
    tcpdump
        39
    tcpdump  
       2022-03-28 10:39:56 +08:00
    @PureWhiteWu 利益相关 ??? 大股东吧。
    sxfscool
        40
    sxfscool  
       2022-03-28 10:41:30 +08:00
    不想用就别用,有本事你写个垃圾出来
    Asfy
        41
    Asfy  
       2022-03-28 11:10:32 +08:00
    vscode 远程体验是最好的了.
    clion 那套跟屎一样
    FightPig
        42
    FightPig  
       2022-03-28 13:52:57 +08:00
    @PureWhiteWu 请问,M1 Max 和 pro 的话相差大么
    hei1000
        43
    hei1000  
       2022-03-28 14:05:04 +08:00
    @PureWhiteWu 啥 Rust 项目需要 2 小时?
    PureWhiteWu
        44
    PureWhiteWu  
      &nbp;2022-03-28 14:56:43 +08:00
    @FightPig 内存不敏感的话,pro 也够用;我主要是要 64G 内存。
    PureWhiteWu
        45
    PureWhiteWu  
       2022-03-28 14:57:18 +08:00
    @tcpdump 并不是……AAPL 买不起……
    PureWhiteWu
        46
    PureWhiteWu  
       2022-03-28 14:57:35 +08:00
    @hei1000 公司内的某项目。
    junnplus
        47
    junnplus  
       2022-03-28 17:05:36 +08:00
    @Goooooos 是 12 代 i9 ,比 max 快一点点
    qwertyiuop
        48
    qwertyiuop  
       2022-03-28 17:56:50 +08:00
    就编译而言 ,m1 max 还是挺香的。 亲测 我的是 10+24 32G
    bxb100
        49
    bxb100  
       2022-03-28 21:00:08 +08:00 via Android
    Action self host runner 不就行了
    houhaibushihai
        50
    houhaibushihai  
       2022-03-28 22:23:12 +08:00
    @stnaw m1 max 和 m1 pro 差距大吗(就编译而言)?因为我看它俩都是 10 核 cpu
    yazinnnn
        51
    yazinnnn  
       2022-03-28 22:33:34 +08:00
    拯救者的 12700h 和 mbp16 的 m1 max 的编译速度哪个快一些?
    Jooooooooo
        52
    Jooooooooo  
       2022-03-28 23:58:10 +08:00
    项目为啥这么大...
    qwertyiuop
        54
    qwertyiuop  
       2022-03-29 09:00:24 +08:00
    @houhaibushihai #50 没有 m1 pro 对不了...
    INCerry
        55
    INCerry  
       2022-03-29 16:52:30 +08:00
    像 C++还有 IncrediBuild 可以用,Rust 没有这方面的东西吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2646 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 45ms UTC 12:04 PVG 20:04 LAX 04:04 JFK 07:04
    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