V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
updateing
V2EX  ›  问与答

打算为编译 Android 和 LEDE 的任务配置一台编译机, CPU 应该怎么选?

  •  
  •   updateing · 2017-08-05 22:06:46 +08:00 · 4103 次点击
    这是一个创建于 2658 天前的主题,其中的信息可能已经有所发展或是发生改变。
    折腾这两个项目属于兴趣,但是目前抱着个 8G 内存的 X230 全新编译一个 Android ( ARM64 )固件要 4 小时,实在是消受不起…… LEDE 规模没那么大但一两个小时也还是要的。想配个专门编译这俩的机器,目前预算 4K ~ 6K,接受二手,预想双路 E5-2660v2,10C20T *2,默频 2.2G 睿频 3.0G

    那么问题来了,

    1. 对于这两个项目的编译,是否需要使用这么多的线程数?(不然可以再缩缩预算 23333 )
    2. 马云家的服务器拆机板,比如英业达 B610、Intel S2600CP2 这类,能上车吗?
    3. 也听到上 E5-2683 v3 的船的说法,单路 14C28T,默频 2.0G 睿频 3.0G 。虽然新一代,但平台价格就高出很多了。是否值得把双路 2660v2 换成单路 2683v3 呢?
    4. 开这么多线程编译 Android 的话,内存会需要多大?保持 2660v2 的话内存用 DDR3 1333 会便宜不少,可以买很多内存,要是上了 E5 v3 的船就不得了了

    这么多问题,先在这里谢过大家了~
    第 1 条附言  ·  2017-10-29 19:12:03 +08:00

    用了一阵子以后反馈一下感受……

    配置最终定的是

    • E5 2660 v2 *2
    • 32GB DDR3 1333 RECC
    • 英业达 B810

    在 SATA 的 SSD 上,40 线程完全重新编译 Android 7.1 (ARM64,魔趣) 大概 1 小时,Android 8.0 AOSP/CAF 大概 50 分钟。完全重新编译 LEDE (ipq806x,选了些 Linux 常用的命令行工具、网络诊断工具和 USB 应用)大概 25 分钟左右。

    感觉内存买大了,明明线程数那么多,结果编译 Android 只用到 12G 左右,编译 LEDE 更是只有 2G,跟原来笔记本编译差不多,就好像多出来几十个线程都不要内存一样,原因未知…… 不过这么大内存在频繁搜索同一位置的巨量源码的时候很有用 23333

    CPU 单核主频确实重要,经常能看到 CC 飞快地跑完了然后在 LD 卡半天,编译 Linux 内核时感觉尤其明显。可以考虑用内存和核心数去换高默频。

    17 条回复    2017-10-29 19:12:31 +08:00
    snnn
        1
    snnn  
       2017-08-05 22:12:11 +08:00 via Android
    唉。。。。。。。
    希望有天 android 把它的编译系统改改。
    软件的进步能让你节省大量硬件资源。

    话说,你上 ccache 啊
    updateing
        2
    updateing  
    OP
       2017-08-05 22:59:58 +08:00
    @snnn 感谢建议!

    感觉 ccache 在代码稳定以后多次编译比较好,如果代码还没稳定就遇到 Bug (比方说在已经存在的 -I 路径下添加新的头文件),就不知道应该怀疑代码还是怀疑 ccache,所以我没就没开 ccache 了,每次都重新编译。

    听说 Android O 里要把 Jack 换回 javac 了,喜闻乐见,内存看来是可以省一点 23333
    wusibacg
        3
    wusibacg  
       2017-08-05 23:08:54 +08:00
    额。。为什么不考虑用云服务器编译呢?
    updateing
        4
    updateing  
    OP
       2017-08-05 23:50:56 +08:00 via Android
    @wusibacg 因为有这样配置的云服务器用一阵子足够我买一台了😂 此外大型文件下载上传速度也有些问题
    chanssl
        5
    chanssl  
       2017-08-06 00:22:49 +08:00 via Android
    捕获 updateing _(•̀ω•́ 」∠)_ K3 的 LEDE 还会更新吗∠( ᐛ 」∠)_
    pqee
        6
    pqee  
       2017-08-06 00:35:41 +08:00 via Android
    二手服务器不错,不过如果不想经常淘宝买硬件还是建议 Ryzen
    billlee
        7
    billlee  
       2017-08-06 00:52:59 +08:00
    我只知道 OpenWRT 的 Makefile 有问题,用并发编译的时候有可能失败。
    lsylsy2
        8
    lsylsy2  
       2017-08-06 02:15:05 +08:00   ❤️ 1
    @updateing 可以考虑用亚马逊的 spot instance,相比之下很便宜了
    updateing
        9
    updateing  
    OP
       2017-08-06 10:09:15 +08:00 via Android
    @chanssl K3 不在手边了……
    updateing
        10
    updateing  
    OP
       2017-08-06 10:20:01 +08:00 via Android
    @pqee 感谢建议!如果这两任务实际上的并行线程数没有那么大的话,就可以考虑 Ryzen 了。但是如原帖第一点所说,并不知道多少线程可以吃满……
    updateing
        11
    updateing  
    OP
       2017-08-06 10:22:54 +08:00 via Android
    @billlee 是的,我记得遇到过 gpio-button-hotplug 编译时报内核头文件找不到的问题。出错后一般 -j1 十分钟之后再来一把 -j4 就过了😂不知道现在修了没

    @lsylsy2 刚看了下,感觉还不错,打算试一下效果~
    chanssl
        12
    chanssl  
       2017-08-06 11:29:32 +08:00
    @updateing #9 这样子
    msg7086
        13
    msg7086  
       2017-08-06 13:29:09 +08:00   ❤️ 2
    C 代码编译是很容易并行的,只有链接才是单点瓶颈。
    考虑到平台成本的话,2660v2 性价比很高,v3 v4 主要是有了 AVX2,压片快很多,但是原生代码执行速度并没有快多少,价格倒是高很多,不划算。

    顺便再低的话也可以考虑 E5v1。v1 v2 之间性能差别很小,主要是功耗降低。
    20 刀一片的 2640 也差不多是 i7 级别的速度了。

    DDR3 低价也是优势,插一排很便宜。

    机器的话,我比较偏向于二手整机,比如超微蓝猫家的 6027TR 性价比就很好,400 刀双节点可以插 4 片 E5。

    如果你实在懒得折腾机架服务器,选 R7-1700 也不错的,现在降价了性价比很好。

    仅供参考。
    a1044634486
        14
    a1044634486  
       2017-08-06 17:15:20 +08:00
    @msg7086 超微懒猫是哪里
    msg7086
        15
    msg7086  
       2017-08-07 03:21:18 +08:00
    @a1044634486 Supermicro。
    hzwjz
        16
    hzwjz  
       2017-08-28 10:38:10 +08:00
    希望楼主,配置好了,可以回来这帖子里附言嘛?
    updateing
        17
    updateing  
    OP
       2017-10-29 19:12:31 +08:00
    @hzwjz 好了,已经 APPEND (迟了很久……)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1039 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:09 · PVG 06:09 · LAX 14:09 · JFK 17:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.