V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rv54ntjwfm3ug8
V2EX  ›  程序员

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

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

    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 编译就慢
    vincexu
        16
    vincexu  
       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 喂了一大堆无用的代码,加重了编译后端的工作量。
    gynantim
        30
    gynantim  
       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 用完删呗
    Goooooos
        33
    Goooooos  
       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  
       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 快一点点
    stnaw
        48
    stnaw  
       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
    项目为啥这么大...
    stnaw
        54
    stnaw  
       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   ·   实用小工具   ·   1084 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 18:50 · PVG 02:50 · LAX 10:50 · JFK 13:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.