c++ - distcc 问题 : does it really speeds up compilation?

标签 c++ cmake distcc

我为一个小型 C++ 项目安装了 distcc 和 Cmake。我有两台机器:所以有一台在本地完成编译的客户端,还有一台“远程”完成编译的服务器。

我已按照说明安装和配置 distcc,但在使用以下简单步骤编译我的项目时,我没有看到任何改进:

CXX="distcc g++" cmake my_project && make -j4

我已经检查了客户端和服务器机器上的所有内容,没有发现任何特殊行为。日志中的所有返回代码均为 0(正常),并且没有错误消息。就像一切正常但没有时间增益。我还安装了 distccmon-gui 工具并检查了编译期间两台机器是否都在使用。

最后我确实用4台机器试了一下,结果一样,都是0提升。

唯一看起来很奇怪的是通信时间:

COMPILE_OK exit:0 sig:0 core:0 ret:0 time:151ms 
COMPILE_OK exit:0 sig:0 core:0 ret:0 time:156ms 
COMPILE_OK exit:0 sig:0 core:0 ret:0 time:182ms 
COMPILE_OK exit:0 sig:0 core:0 ret:0 time:201ms 
COMPILE_OK exit:0 sig:0 core:0 ret:0 time:163ms 
COMPILE_OK exit:0 sig:0 core:0 ret:0 time:202ms 

即使在本地主机上,每个执行的作业的延迟也约为 200 毫秒。

最后,当我使用 distcc 时,有一点时间开销,我将其归因于服务器和客户端之间的通信。

有没有人已经遇到过 distcc 的问题并且知道我应该去哪里查看,或者我应该去哪里调查?我真的坚持这一点,相信 distcc 应该给我带来额外的性能!

有什么想法吗?请帮助:=)

谢谢

最佳答案

你总共有多少个核心?

请记住,运行 make -j4 将使用 4 个核心 total:如果本地计算机上有 4 个核心,服务器上有 4 个,则必须使用make -j8 否则您将不会比仅在本地编译有任何改进。

关于c++ - distcc 问题 : does it really speeds up compilation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23016893/

相关文章:

c++ - 如何编译 C++ 代码以在网页中显示(如在 PHP 中)

c++ - printf 对参数的顺序敏感吗?

cmake - 如何添加文件夹中除特定文件之外的所有源文件?

unicode - 如何在 Cmake 生成的 ALL_BUILD 和 ZERO_CHECK Visual Studio 2013 项目中将 unicode 设置为字符集?

c++ - 诠释 *吨;这个 t[*t] - 类型定义

c++ - 如何将 Varaidic 模板化为模板中的返回类型?

c++ - 我可以简化这种安装和导出基于 CMake 的项目的方法吗?

makefile - 使用 distcc 在 Raspberry pi 上编译 gnuradio

build - 使用bitbake进行分布式编译

c++ - Distcc 与 C++ undefined reference