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

求在 MBP 上的 Linux 虚拟机中编译 C++项目的最佳方式

  •  
  •   zhq527725 · 2017-07-11 11:02:41 +08:00 · 2222 次点击
    这是一个创建于 2691 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有一个规模不是很大的 C++项目(使用 automake 进行编译),同时支持 macOS 和 Linux,在我的 MBP 上编译一遍大约耗时十分钟。我在 MBP 上通过 VirtualBox 创建一个 Ubuntu 16.04 的虚拟机( 4core + 8GB RAM ),然后在这个虚拟机中编译这个项目需要四十分钟左右,实在是太慢了。。。

    不太清楚问题出在哪儿,是 VirtualBox 的锅吗?有什么办法加速虚拟机中的编译?

    10 条回复    2017-07-11 19:32:40 +08:00
    whatot
        1
    whatot  
       2017-07-11 11:18:00 +08:00
    上 cmake,ninja,ccache 等
    porrat
        2
    porrat  
       2017-07-11 11:32:58 +08:00
    不废话吗,虚拟机性能当然大幅下降,没办法
    lsmgeb89
        3
    lsmgeb89  
       2017-07-11 12:38:35 +08:00
    ccache 会快一点
    Gcourage
        4
    Gcourage  
       2017-07-11 13:05:56 +08:00 via Android
    @lsmgeb89 原来就是增量编译,是不是就差不多了?
    QAPTEAWH
        5
    QAPTEAWH  
       2017-07-11 13:17:54 +08:00
    CPU 性能,Host 和 VM 应该差距不大。可能性有
    - VM 设置没弄好?
    - VirtualBox 是比较挫?
    - 编译实际是 IO-bond 的?
    - LLVM 和 GCC 的差异?
    zhq527725
        6
    zhq527725  
    OP
       2017-07-11 13:27:47 +08:00
    @QAPTEAWH 我感觉可能跟 IO 有些关系,因为最终编译完成后生成的目标文件和可执行文件加起来 5 个 G 左右。
    UnknownR
        7
    UnknownR  
       2017-07-11 13:51:20 +08:00
    @zhq527725 虚拟机的主要开销在 cpu 和内存上,mbp 上是 ssd,磁盘 io 应该不会造成瓶颈。可以对比下 macos 下和 ubuntu 下的编译环境,虚拟机还不至于带来 4 倍的时间开销,或者看下 cmake 的配置,是否是因为没启用多线程造成的
    zhq527725
        8
    zhq527725  
    OP
       2017-07-11 13:56:44 +08:00
    @UnknownR 我暂时还没有使用 cmake,目前使用的是 automake,编译时的命令是“ make -j4 ”,应该是使用到了多核并行进行编译。
    akrf
        9
    akrf  
       2017-07-11 14:02:49 +08:00 via Android
    最佳方式是搞一台台式机
    hu6360567
        10
    hu6360567  
       2017-07-11 19:32:40 +08:00 via iPhone
    https://github.com/tpoechtrager/osxcross
    在 Mac 上交叉编译到 Linux 呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2487 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 01:09 · PVG 09:09 · LAX 17:09 · JFK 20:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.