首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >distcc问题:它真的加快了编译速度吗?

distcc问题:它真的加快了编译速度吗?
EN

Stack Overflow用户
提问于 2014-04-11 23:34:30
回答 3查看 1K关注 0票数 4

我为一个小的C++项目安装了distcc和Cmake。我有两台机器:一台是本地编译的客户机,另一台是“远程”编译的服务器。

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

代码语言:javascript
复制
CXX="distcc g++" cmake my_project && make -j4

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

最后,我确实尝试了4台机器,并得到了相同的结果,即0改进。

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

代码语言:javascript
复制
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 

即使在本地主机上,每个执行的作业的延迟也在200ms左右。

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

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

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

谢谢

EN

回答 3

Stack Overflow用户

发布于 2014-10-26 20:08:33

您一共有多少核?

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

票数 3
EN

Stack Overflow用户

发布于 2016-03-25 19:27:49

不要忘记设置允许客户机向任何给定服务器发送多少个作业。

代码语言:javascript
复制
Server/x # where server is the ip and x is the # of jobs

如果不这样做,则默认为4。

票数 2
EN

Stack Overflow用户

发布于 2014-04-11 23:41:57

分发构建的一个问题是make文件构造得有多好。

如果makefile的构造方式不是真正能够并行运行,那么使用distcc可能不会有太大的不同。

在不将构建分发到另一台计算机的情况下,您是否可以在没有-j选项的情况下使用-j 4进行加速?如果不是这样,您可能不会看到仅仅因为卸载而提高速度,除非您正在将负载卸载到真正快速的机器上,因为它一次可能只卸载一个作业

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23016893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档