linux下提高编译速度很好

上传人:oq****t 文档编号:2672112 上传时间:2017-07-26 格式:TXT 页数:4 大小:4.83KB
返回 下载 相关 举报
linux下提高编译速度很好_第1页
第1页 / 共4页
linux下提高编译速度很好_第2页
第2页 / 共4页
linux下提高编译速度很好_第3页
第3页 / 共4页
linux下提高编译速度很好_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《linux下提高编译速度很好》由会员分享,可在线阅读,更多相关《linux下提高编译速度很好(4页珍藏版)》请在金锄头文库上搜索。

1、项目越来越大,每次需要重新编译整个项目都是一件很浪费时间的事情。Research了一下,找到以下可以帮助提高速度的方法,总结一下。tmpfs有人说在Windows下用了RAMDisk把一个项目编译时间从4.5小时减少到了5分钟,也许这个数字是有点夸张了,不过粗想想,把文件放到内存上做编译应该是比在磁盘上快多了吧,尤其如果编译器需要生成很多临时文件的话。这个做法的实现成本最低,在Linux中,直接mount一个tmpfs就可以了。而且对所编译的工程没有任何要求,也不用改动编译环境。mount -t tmpfs tmpfs /build -o size=1G用2.6.32.2的Linux Kern

2、el来测试一下编译速度:用物理磁盘:40分16秒用tmpfs:39分56秒呃没什么变化。 来编译 很大程度上 不在IO上 。对 一个实 项目来说,编译过程中可 有 IO 的 ,所以 要可 ,用tmpfs是有 的。 对 大项目来说, 需要有 的内存 这个tmpfs的。make -j IO不是 ,CPU就应该是一个编译速度的重要currency1了。用make -j一个“数,可以把项目在 编译,比如在一fifl的 器上,可以用make -j4,make最多许4个编译 时,这可以”有的用CPU 。是用Kernel来测试:用make:40分16秒用make -j4:23分16秒用make -j8:22

3、分59秒 来,在多flCPU上, 的 编译 是可以提高编译速度的。的任不多,一是以CPU的fl 数目的 。不过这个方不是没有cost的,如果项目的Makefile不,没有 的 ,编译的结果就是编译不 。如果 过 ,可 本 编译的可 度就下 了,也不 最 的果。ccacheccache用 把编译的中间结果存,以 在次编译的时 可以 时间。这对 Kernel来说实在是 不过了, 需要改一Kernel的 ,重新编译,而这次编译大 分 可 都没有生变化。对 时项目来说,也是一。 什么不是直接用make所 的 编译 是 现实中, Makefile的不,很可 这 的方 本不 工 , 有每次makeclea

4、nmake 。ccache ,可以在/usr/local/bin下建立gcc,g+,c+,cc的symbolic link,链到/usr/bin/ccache上。总之 认 统在调用gcc 时 调用到ccache就可以了(通 情况下/usr/local /bin 在PATH中排在/usr/bin前 )。继续测试:用ccache的第一次编译(make -j4):23分38秒用ccache的第二次编译(make -j4):8分48秒用ccache的第三次编译(改若干配 ,make -j4):23分48秒来改配 (我改了CPU类型.)对ccache的是很大的, 基本头文件生变化 ,就导致所有存数据都

5、了,必须重头来做。 如果 是改一.c文件的 ,ccache的果 是相 的。而且使用ccache对项目没有特别的 ,布署成本很低,这在日 工 中很实用。可以用ccache -s来查 cache的使用和 中情况:cache directory /home/lifanxi/.ccachecache hit 7165cache miss 14283called forlink 71not a C/C+ file 120no input file 3045files in cache 28566cache size 81.7 Mbytesmax cache size 976.6 Mbytes可以 到,

6、有第二编次译时cache 中了,cache miss是第一次和第三次编译来的。次cache占用了81.7M的磁盘, 是可以接受的。distcc一 器的 力有限,可以联合多电脑一 来编译。这在公司的日 中也是可的, 可 每个人员都有自己的编译环境,它们的编译器版本一是一致的,公司的网络也通 具有较 的性 。这时就是distcc大 手的时 了。使用distcc, 不像想象中要求每电脑都具有一致的环境,它 要求 可以用make -j 编译,且“与分布式编译的电脑 统中具有相的编译器。 它的原理 是把预处理 的 文件分到多计算上,预处理、编译 的目标文件的链接和其它除编译以外的工 仍 是在 编译的主控

7、电脑上成,所以 要求 编译的 器具备一套整的编译环境就可以了。distcc ,可以启动一下它的服:/usr/bin/distccd -daemon -allow 10.64.0.0/16默认的3632端口许来自一个网络的distcc连接。一下DISTCC_HOSTS环境变 , 可以“与编译的 器列表。通 localhost也“与编译, 如果可以“与编译的 器很多, 可以把localhost从这个列表中去掉,这本 就 是预处理、分和链接了,编译都在别的 器上成。 器很多时,localhost的处理 很重,所以它就不兼职 编译了。export DISTCC_HOSTS=localhost 10.6

8、4.25.1 10.64.25.2 10.64.25.3与ccache类似把g+,gcc 用的 链接到/usr/bin/distcc上就可以了。在make的时 ,也必须用-j“数,一是“数可以用所有“用编译的计算 CPU内fl总数的做 的任数。测试一下:一fifl计算 ,make -j4:23分16秒fifl计算 ,make -j4:16分40秒fifl计算 ,make -j8:15分49秒跟最始用一fifl时的23分钟相比, 是快了不少的。如果有”多的计算 加入,也可以 到” 的果。在编译过程中可以用distccmon-text来查 编译任的分配情况。distcc也可以与ccache时使用,通过 一个环境变 就可以做到,非 方 。总结一下:tmpfs:解决IO ,充分用本 内存 make -j:充分用本 计算 distcc:用多计算 ccache:减少重复编译相 的时间这工具的 处都在 布署的成本相对较低,综合用这工具,就可以轻轻松松的 相 可观的时间。上 介绍的都是这工具最基本的用法,”多的用法可以“考它们各自的man page

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号