我有一个规模不是很大的 C++项目(使用 automake 进行编译),同时支持 macOS 和 Linux,在我的 MBP 上编译一遍大约耗时十分钟。我在 MBP 上通过 VirtualBox 创建一个 Ubuntu 16.04 的虚拟机( 4core + 8GB RAM ),然后在这个虚拟机中编译这个项目需要四十分钟左右,实在是太慢了。。。
不太清楚问题出在哪儿,是 VirtualBox 的锅吗?有什么办法加速虚拟机中的编译?
1
whatot 2017 年 7 月 11 日
上 cmake,ninja,ccache 等
|
2
porrat 2017 年 7 月 11 日
不废话吗,虚拟机性能当然大幅下降,没办法
|
3
lsmgeb89 2017 年 7 月 11 日
ccache 会快一点
|
5
QAPTEAWH 2017 年 7 月 11 日
CPU 性能,Host 和 VM 应该差距不大。可能性有
- VM 设置没弄好? - VirtualBox 是比较挫? - 编译实际是 IO-bond 的? - LLVM 和 GCC 的差异? |
7
UnknownR 2017 年 7 月 11 日
@zhq527725 虚拟机的主要开销在 cpu 和内存上,mbp 上是 ssd,磁盘 io 应该不会造成瓶颈。可以对比下 macos 下和 ubuntu 下的编译环境,虚拟机还不至于带来 4 倍的时间开销,或者看下 cmake 的配置,是否是因为没启用多线程造成的
|
8
zhq527725 OP @UnknownR 我暂时还没有使用 cmake,目前使用的是 automake,编译时的命令是“ make -j4 ”,应该是使用到了多核并行进行编译。
|
9
akrf 2017 年 7 月 11 日 via Android
最佳方式是搞一台台式机
|
10
hu6360567 2017 年 7 月 11 日 via iPhone
https://github.com/tpoechtrager/osxcross
在 Mac 上交叉编译到 Linux 呢? |