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

求超强 Android 系统编译主机推荐

  •  
  •   yitingbai · 209 天前 · 5342 次点击
    这是一个创建于 209 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为项目需要定制安卓系统, 适配好多的手机, 每次修改或者发布版本都要编译好久, 我的 iMac 的 CPU 是 i9 9900K 的, 性能吃满完整编译一次 Android10 耗时 2 个小时左右, 求懂行的朋友推荐一个编译服务器, 我在网上看到有 E5 双路 CPU 这种, 不知道能不能满足快速编译的需求, 怕买回来还不如我的 i9 处理器.

    只要 CPU 强, 内存 32G 差不多了, 显卡不需要,SSD 不需要,显示器不需要, 其他配件凑合稳定就行, 组这样一台机器, 最低预算是多少? 或者有经验的老哥可以推荐一下配置吗?

    86 条回复    2021-08-19 22:32:45 +08:00
    lagoon
        1
    lagoon  
       209 天前
    嗯?编译 Android 系统,这不上分布式怎么顶得住?
    xunandotme
        2
    xunandotme  
       209 天前
    ......
    zongren
        3
    zongren  
       209 天前
    这么慢的吗
    wellsc
        4
    wellsc  
       209 天前
    @lagoon 别瞎说,分布式是解决单点问题和 IO 密集问题的,编译系统明显是计算密集任务,加配置就得了
    sunny352787
        5
    sunny352787  
       209 天前
    @wellsc 我之前写 C++的时候还真的是分布式编译的
    richard1122
        6
    richard1122  
       209 天前
    看看有木有分布式的构建系统,给开源社区用的,比如 chromium 有这个: https://www.electronjs.org/docs/development/goma
    Vindroid
        7
    Vindroid  
       209 天前
    什么需求啊,要一直完整编译系统啊?
    ch2
        8
    ch2  
       209 天前   ❤️ 1
    linus 用的是 32 核的 3970X
    yolee599
        9
    yolee599  
       209 天前
    我们公司是买了一个双 CPU 的 IBM 服务器放机房,专门做安卓内核编译
    yitingbai
        10
    yitingbai  
    OP
       209 天前
    @richard1122 预算不够, 性价比越高越好
    qwerrewt
        11
    qwerrewt  
       209 天前
    AMD 锐龙 Threadripper 3990X 。基本上用 80 个线程同时编的话可以半小时编完。
    hello2060
        12
    hello2060  
       209 天前
    没怎么搞过 android, 不能增量编译的吗?每次改动都要完整编一次?
    Stevenv
        13
    Stevenv  
       209 天前   ❤️ 1
    10 楼说的对,配一个 amd 的线程撕裂者。。
    lagoon
        14
    lagoon  
       209 天前
    @wellsc
    猎手遇到学者,猎手说见到老虎打不过
    学者说根据我的计算,用 xx 角度滑铲,就能把老虎开膛破腹。你说,我的公式,哪里有问题?

    猎手:我错了,我知识不足。惭愧惭愧。
    yolee599
        15
    yolee599  
       209 天前
    @yolee599 #9 CPU 配置如下:
    # grep "model name" /proc/cpuinfo | cut -f2 -d:

    Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz
    ...省略了 31 条...
    lagoon
        16
    lagoon  
       209 天前
    我做过板子+Android 系统 = xx 机器人的项目。
    但楼主说的似乎是纯手机的 Android 系统,不涉及硬件部分。


    我错了。
    3dwelcome
        17
    3dwelcome  
       209 天前
    正常来说,C++都是分布式编译的,最耗时间的就是 C 文件到 OBJ 文件。除了最后链接阶段不能分布式,别的都可以。

    你看大型游戏公司的源代码编译,就有这种需求,有专门适配 VS 的分布式工具。

    但安卓编译就不太清楚了。没用过不好乱说。
    yitingbai
        18
    yitingbai  
    OP
       209 天前
    @hello2060 有模块编译, 但是也很慢, 而且有时候不知道编译错误的原因, 全编一次是最快的解决方法
    waruqi
        19
    waruqi  
       209 天前
    上 ccache
    root99527
        20
    root99527  
       209 天前 via iPhone
    增量编译就可以吧?以前全量拍包都是在服务器上搞的
    cslive
        21
    cslive  
       209 天前
    搞一套洋垃圾
    gnahzraensim
        22
    gnahzraensim  
       209 天前
    E5 还可以 我有个单路 E5 2680 V4 14 核 我编译 AOSP -j28 的参数 也要将近一小时 你配置个双路 应该可以缩减一点时间
    dalabenba
        23
    dalabenba  
       209 天前 via Android
    Cpu 强在编译这件事上就是核多
    wellsc
        24
    wellsc  
       209 天前
    @lagoon ???
    mingl0280
        25
    mingl0280  
       209 天前
    AMD EPYC 7702 64c128t 走你。
    gam2046
        26
    gam2046  
       209 天前
    9900K 编译一次应该不需要这么久,即使是全量编译也不需要,检查一下是否磁盘存在瓶颈。我用 8700 全量编译也就 1 个小时,之后增量编译就 3 分钟以内(如果跳过 CTS 检查可以到 1 分钟以内)
    kokutou
        27
    kokutou  
       209 天前 via Android
    3950x,有钱上更高的,固体上好的 980pro 。
    kokutou
        28
    kokutou  
       209 天前 via Android
    e5 主频低,不合适。
    dinghmcn
        29
    dinghmcn  
       209 天前
    @yitingbai #18 我们公司全部重新编译要 4 个小时,都是 make installclean 后增量编译;出错了找不到原因?看那个模块出错 单独 make clean-模块名,没有出现过出错了必现全部重新编译的
    yitingbai
        30
    yitingbai  
    OP
       209 天前
    @gam2046 在 mac 下的虚拟机跑的, 因为 mac 环境配置总是编译失败,无奈采用虚拟机. 看完大家的评论, 我准备配一台 x99 平台的双路 E5 了, 比较便宜
    yitingbai
        31
    yitingbai  
    OP
       209 天前
    @gam2046 在 mac 下的虚拟机跑的, 因为 mac11 环境配置总是编译失败,无奈采用虚拟机. 而且 iMac 散热不行, 长时间编译温度维持在 98 度以上, 频率被限制在 3.6g 附近, 又因为机型多,out 目录超大, 所以用的外置 sata ssd, io 速度确实不行,所以我才动了杀心, 搞一台专门编译的服务器
    Michaelssss
        32
    Michaelssss  
       209 天前
    线程撕裂者,把 U 开满。。差不多,毕竟计算集中。。。。。。双路 E5 这种低频方案不要尝试了。意义不大
    napsterwu
        33
    napsterwu  
       209 天前 via iPhone
    7700k 在 VMware 里编译 lineageos 全量大概三个小时吧
    billlee
        34
    billlee  
       209 天前
    分布式编译是可以,但那是单机达到瓶颈后的措施,先上双路至强吧,肯定不是拿台桌面机型去搞分布式的

    注意现在的 xeon 都不叫 e5 了,最后用 e5 系列编号的是 haswell 架构吧,很多年前的了
    yitingbai
        35
    yitingbai  
    OP
       208 天前
    @billlee 你这句话太重要了, 难怪淘宝全都是卖 E5 整机的,都是垃圾啊,我得研究研究
    calpes
        36
    calpes  
       208 天前
    这个需求基本上就是县城撕裂者的场景了
    azhangbing
        37
    azhangbing  
       208 天前   ❤️ 1
    线程撕裂者 5900X,速度买,矿老板都在扫这个 CPU
    sherlock1122
        38
    sherlock1122  
       208 天前   ❤️ 1
    目前我用 3950X + 3900X,编译内核好快,测试 centos 7 内核 rpm 或者 fedora 34 内核 rpm 带 debuginfo rpm,时间为 10 min 左右。

    建议至少 3950X 起步,5900X,5950X,59XXX 更好。
    这个钱花得值。
    updateing
        39
    updateing  
       208 天前 via Android
    我用 3950X,45 分钟编译出魔趣的完整包。但是 SSD 绝对是必要的,不能没有(虽然我用的是个辣鸡 D4502 )
    killeder
        40
    killeder  
       208 天前
    加到 256G 内存 1TB SSD
    zpxshl
        41
    zpxshl  
       208 天前 via Android
    编制系统,也吃 io 吧
    kingiis
        42
    kingiis  
       208 天前
    固态+i710 就够了
    l4ever
        43
    l4ever  
       208 天前
    Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz
    Android 5.1 48 分钟左右.
    0312birdzhang
        44
    0312birdzhang  
       208 天前
    @ch2 #8 单纯只编译 kernel 快多了,我的 j3455 都能上。Android 那些 jar 编起来慢的一 p,还要大内存。。。
    aneostart173
        45
    aneostart173  
       208 天前
    5950x 走起
    yazoox
        46
    yazoox  
       208 天前
    @3dwelcome 兄弟,有相关的文档,wiki,或者工具的名字么?我们的项目,有几千个 c++的 proj,相互之间还有以来。现在都是在一台机器上编译。我想能否也做成分布式编译?
    3dwelcome
        47
    3dwelcome  
       208 天前
    @yazoox Windows 上最早的是 Incredibuild,我只知道这个。

    现在应该还有不少可选方案,可以试着搜一下。
    NSAgold
        48
    NSAgold  
       208 天前 via Android
    可以去 mokee 社区问问
    据说最好使用高性能 cpu+高性能 ssd+debian 系编译 内存 32g 应该是够的
    另外 准不准备适配小众机型😏
    vessel
        49
    vessel  
       208 天前
    @yazoox 国内大厂都是分布式编译的,应该没开源
    luny
        50
    luny  
       208 天前
    安卓编译确实比较费,我们的是两颗 E5-2680 v4 28 核心,512G 的内存,2T 的 SSD 。
    luny
        51
    luny  
       208 天前
    @yitingbai 另外有没有推荐的安卓 rom 开发,我们急需,深圳的
    Puteulanus
        52
    Puteulanus  
       208 天前
    https://metal.equinix.com/product/servers/
    按小时付费的独立服务器
    lakehylia
        53
    lakehylia  
       208 天前
    @qwerrewt 京东 29999,好贵啊
    rrZ2C
        54
    rrZ2C  
       208 天前
    @gam2046 那么,求问增量编译怎么才会跳过 CTS 检查?
    felixcode
        55
    felixcode  
       208 天前 via Android
    核尽量多一些,另外可以考虑加内存用内存盘
    Yc1992
        56
    Yc1992  
       208 天前
    等 5990x
    fengjianxinghun
        57
    fengjianxinghun  
       208 天前
    rrZ2C
        58
    rrZ2C  
       208 天前
    @luny 不是很懂这个 CPU,但是你们这内存上得怎么这么大呀 ,平时会一台机器上跑很多个 Android r 编译任务吗?
    luny
        59
    luny  
       208 天前
    @rrZ2C 申请回来就是这么大的,没有刻意提需求,凑合用了
    fanyingmao
        60
    fanyingmao  
       208 天前
    哈哈,以前开发安卓编译一次十几分钟,代码写到哪都忘记了。
    yulgang
        61
    yulgang  
       208 天前
    编译不是很消耗 io 的么,为啥不需要 ssd 呢 😂
    zzzmh
        62
    zzzmh  
       208 天前
    不懂安卓编译机制,但我知道 amd yes,你看预算来搞个 amd 39xx / 59xx 或者直接上 EPYC,算力方面肯定把隔壁蓝厂吊起来转圈打
    duanxianze
        63
    duanxianze  
       208 天前
    目前来看还是 AMD3995x 这种好,64c128t,盲猜能把你的编译速度提升 5 倍以上
    zlbruce
        64
    zlbruce  
       208 天前
    @yazoox 以前折腾 gentoo 的时候用过 distcc,可以参考下 https://distcc.github.io/
    ophunter
        65
    ophunter  
       208 天前
    有大佬了解,安卓 APP,android studio 编译运行快,怎么配置法
    SupperMary
        66
    SupperMary  
       208 天前
    我司的编译服务器,双路志强 4210R,256G RAM (你一个人用的话,32G 应该是够的),
    SSD 可以按使用体验来说,可以显著增加编译速度,建议增加。
    yitingbai
        67
    yitingbai  
    OP
       208 天前
    @luny 没认识的, 我是单打独斗
    yitingbai
        68
    yitingbai  
    OP
       208 天前
    @yulgang ssd 肯定很重要啊, 但是我已经有了很好的 ssd, 既然再配电脑, 已有的配件自然能省则省
    yitingbai
        69
    yitingbai  
    OP
       208 天前
    @SupperMary ssd 肯定有的, 我的意思是我不需要再采购, 省点预算, 我已经下单了, 双路 e5 2890 v3, 24 核 48 线程, 32G 内存, 虽然不是顶级配置, 但是才几千块钱, 应该足够我用了, 可以把我的 iMac 解放出来了, 不然每次编译, 100%满载都没办法干其他事情
    zwy100e72
        70
    zwy100e72  
       208 天前   ❤️ 2
    编译是少数单纯加核心就能获得近乎线性性能提升的场景(链接阶段除外)。

    计算方面:
    单机编译配置简洁,最高可以到 64c/128t ( Threadripper ) 或 128c / 256t (双路 EPYC);分布式的玩法下最密集可以做到 2U 高度 512c / 1024t ( 4x 双路 EPYC )

    内存方面:
    c++ 编译通常 1 线程配置 2-4GB 内存,这个可以提前测试出来;如果想并行链接的话,需要的内存会大大超出这个范围

    存储方面:
    SSD 肯定很有必要。产生的中间文件都需要保存在磁盘中,机械硬盘除非做阵列,很难跟上编译的速度

    分布式编译方面:
    商用方案 IncrediBuild 、开源方案 distcc / icecc
    java 等其他语言编译加速我不确定,可能不需要这种方案吧(逃

    参见:
    https://www.servethehome.com/dell-emc-poweredge-r7525-review-flagship-dell-dual-socket-server-amd-epyc/

    https://www.servethehome.com/dell-emc-poweredge-c6525-review-2u4n-amd-epyc-kilo-thread-server/

    https://en.wikipedia.org/wiki/Incredibuild

    https://en.wikipedia.org/wiki/Distcc

    ?t=897
    zwy100e72
        71
    zwy100e72  
       208 天前   ❤️ 1
    > 双路 e5 2890 v3

    我想提醒楼主一句,买双路 E5 可能还不如买 5950X,因为近几年 Intel 性能已经渐渐落后于 AMD 了;同时服务器平台会有开机慢、运行噪音大等问题,希望楼主能考虑好再下手
    https://www.cpubenchmark.net/high_end_cpus.html

    > 32G 内存

    32G 内存对 24c / 48t 还是太少了,楼主可能会在内存上遇到瓶颈
    FS1P7dJz
        72
    FS1P7dJz  
       208 天前
    xeon 可以上 ECC 内存
    这个还是蛮重要的
    yitingbai
        73
    yitingbai  
    OP
       208 天前
    @zwy100e72 5950X 太太太贵了
    echo1937
        74
    echo1937  
       208 天前
    @FS1P7dJz #72 5950x 也支持支持 ECC,更别提线程撕裂者和 EPYC
    encro
        75
    encro  
       208 天前
    x 云,竞价实例,自动管理
    liuhan907
        76
    liuhan907  
       208 天前 via Android
    你双路 e5 配下来,编译一下说不定发现还不如 9900k
    kokutou
        77
    kokutou  
       208 天前
    @yitingbai #69

    2690 v3 吧, 16000 分
    5900x 39000 分,

    一颗 5900 吊打 2 颗 2690 ,你真的买错了...

    https://item.jd.com/100016046842.html
    https://item.jd.com/100013779406.html
    rqrq
        78
    rqrq  
       208 天前
    去 geekbench 查多核得分,找个性价比最高的。
    12101111
        79
    12101111  
       208 天前   ❤️ 1
    https://github.com/mozilla/sccache/ 带远程存储的编译缓存 + 5950x, 在编译机上跑一次, 然后之后都在开发机上跑, 没有改变的代码会自动用缓存
    rqrq
        80
    rqrq  
       208 天前
    是我就去弄个 C621+W3175X,最次也是 X299+10980XE
    zqcolor
        81
    zqcolor  
       208 天前   ❤️ 1
    @yitingbai 这个配置应该够了,之前用 2780 v2x2 大概 15 minutes build 好,其他普通 i7 电脑 8 小时
    yitingbai
        82
    yitingbai  
    OP
       208 天前
    @kokutou 不是我不知道 5900x 好, 关键是这一颗 U 就顶的上我一台双路 E5 的主机钱了, 而且两颗 E5 2690 加一起也有 32000 分了, 没太多预算, 只能妥协了
    yitingbai
        83
    yitingbai  
    OP
       208 天前
    @12101111 这个厉害了, 给你点赞
    kokutou
        84
    kokutou  
       208 天前 via Android
    @yitingbai
    5800x 28000 分。。。
    5800x,450m 迫击炮,fs140 就可以了,我就这配置。
    主频能到的 4.85 ,牛逼体质能到 5.05 ,编译跑单核的步骤很有用。

    2690v3 洋垃圾玩意,不值这个价,更别说主板都是拆机或寨板,x99 都多少年了。
    kokutou
        85
    kokutou  
       208 天前 via Android
    5800x 5900x 5950x 单核 3500
    2690v3 单核 1900
    phonenixylf
        86
    phonenixylf  
       111 天前
    @yitingbai hi,你这个配置,目前编译一次系统需要多长时间? 编译的系统是 android 多少的?
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3568 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 03:58 · PVG 11:58 · LAX 19:58 · JFK 22:58
    ♥ Do have faith in what you're doing.