compiling Acceleration分布式编译.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
compiling Acceleration分布式编译

加速内核编译 方法:1.分布式编译make CC distcc 2.多任务make -jNN 3编译的缓存ccache 下面是直接编译内核的时间等状态. 标准 gcc real time user time sys time kernel size other allnoconfig 1m57.056s 1m42.426s 0m9.781s 491 kB defconfig 8m24.964s 7m9.995s 0m36.422s 2449 kB allmodconfig 65m29.250s 44m19.060s 4m37.195s 1.6M allyesconfig 78m10.708 50m8.544s 4m15.012s 14610KB 并行编译distcc:在多台机器上同时编译一个程序. 1.首先要统一每台机器上编译器gcc的版本,否则可能会出错. 2.配置/etc/default/distcc: STARTDISTCC ”true” ALLOWEDNETS ”127.0.0.1 173.26.100.0/24” 允许localhost和那个网段的 所有机器并行编译 LISTENER ”” 监听网段内的所有机器 3.设定环境变量DISTCC_HOSTS ”hex yumo localhost” 把要并行编译的机器的 别名都加进去,见/etc/hosts中 4.可以重启distccd服务了,sudo /etc/init.d/distcc restart 注意:上面的配置中 若LISTENER设置不正确,那么distccd服务看起来好像开启了,但用 netstat -a 查看,会发现distccd服务并没有开启 5.现在可以开始分布式编译了,在另一个终端运行命令distccmon-text 2查看并行 编译的状态. 6.相关软件: dmucs helps distcc select appropriate servers. distccwebview is a CGI to show which of your servers are up and running. tcpbalance is a load-balancing TCP proxy written in Erlang that works well with distcc. 注:分布式编译要和多任务结合起来,这样才能将其他任务分配到其他机器上. 原理:distcc sends the complete preprocessed source code across the network for each job, so all it requires of the volunteer machines is that they be running the distccd daemon, and that they have an appropriate compiler installed. 并行 distcc real time user time sys time kernel size other allnoconfig 0m58.336s 0m48.016s 0m6.663s 491 kB make -j6 defconfig 4m0.395s 3m20.536s 0m24.496s 2443 kB allmodconfig 38m57.783s 25m19.663s 3m40.528s 1.6M allyesconfig 42m55.716s 24m13.638s 3m29.288s 14610KB ccache:为程序编译提供缓存,通过减少重复代码编译次数,减少编译时间.不过它对于一次性的编译没有什么帮助作用. cache是为多次重复编译加快速度的. ccache 工具通过将头文件高速缓存到源文件之中而改进了构建性能,因而通过减少每一步编译时添加头文件所需要的时间而提高了编译速度. 1.设定环境变量 export CC ccache gcc 或者创建链接 export CPP ccache cpp export CXX ccache g++ 2.ccache -s 可以查看一下ccache缓存区的默认设定 3.可以开始编译. 注:每次反复编译的之后用make mrproper清理编译生成的文件和配置文件并不会影 响用ccache编译内核的时间,因为ccache的缓存区在用户根目录下的 .ccache中,只 要这一部分不被清理,编译同一配置的内核在时间上不会有影响. 相关软件: gocache: is a clone

文档评论(0)

hf916589 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档