我为一个小型 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/