Too*_*one 8 gcc precompiled-headers distcc
我有一个大型项目,我已经实现了预编译头.我也希望能够使用distcc.根据谷歌的编码纸4.12节在这里
gcc版本3.3包含一些性能改进,使得distcc不那么直接有用.
一个是预编译头,在读取一组公共头文件后,编译器的内部状态被转储到磁盘.这对于包含大量固定标头集的程序非常有用,其中解析标头占用了大部分编译时间.目前,distcc可以通过将.pch状态文件放在共享文件系统上来支持这一点.未来可能会为distcc添加更好的解决方案.
我不认为使用共享文件系统对我来说是一个很好的解决方案.但后来也提到了一个潜在的补丁,可以更好地将预编译的头文件和distcc一起工作:https://lists.samba.org/archive/distcc/2008q2/003646.html.这将涉及DISTCC_PCH在客户端上设置(或使用编译器选项-fpch-preprocess,请参见此处),并将pch选项添加到DISTCC_HOSTS服务器.我试过这个,但它似乎没有用,所以我怀疑补丁没有集成.
在共享文件系统之上和之上是否支持distcc中的预编译头文件?或者让技术合作的任何合理直接的方式?
更新:我现在有一种情况,我使用预编译头编译为本地构建和distcc构建我强制包括预编译头文件,以便本地和distcc构建两个编译完全相同的源.通过仔细选择预编译头文件,我可以获得比以前快40%的本地调试版本,而distcc构建只会慢大约4%.我希望以某种方式结合预编译的头文件和distcc以获得加速,比如10%或20%,使用distcc构建,只需要相当少的努力和侵入性(加速构建不是我的主要责任,除了在企业环境我能做的事情有限.