yitingbai
V2EX  ›  Android

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

  •  
  •   yitingbai · May 14, 2021 · 22233 views
    This topic created in 2009 days ago, the information mentioned may be changed or developed.

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

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

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

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

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


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

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

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

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

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

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

    计算方面:
    单机编译配置简洁,最高可以到 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
    zwy100e72
    May 14, 2021❤️1
    71
    > 双路 e5 2890 v3

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

    > 32G 内存

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

    2690 v3 吧, 16000 分
    5900x 39000 分,

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

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

    2690v3 洋垃圾玩意,不值这个价,更别说主板都是拆机或寨板,x99 都多少年了。
    kokutou
    kokutou
    May 15, 2021 via Android
    85
    5800x 5900x 5950x 单核 3500
    2690v3 单核 1900
    phonenixylf
    phonenixylf
    Aug 19, 2021
    86
    @yitingbai hi,你这个配置,目前编译一次系统需要多长时间? 编译的系统是 android 多少的?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4584 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 210ms · UTC 06:29 · PVG 14:29 · LAX 22:29 · JFK 01:29
    ♥ Do have faith in what you're doing.