LinuxSir.Org  
| 网站首页 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
精华主题  
主题工具
旧 08-05-27, 01:25 第 1 帖
zhuqin_83 帅哥
 
 
 
注册会员  
  注册日期: Apr 2006
  帖子: 858
  精华: 4
 

标题: 用ccache加速你的编译过程


无意间发现了ccache这么个好东西,或许大家都知道,就我火星了。

安装使用都很简单,对同一软件的同一或更新版本进行第二次编译速度是成倍(5-10倍)增长的。所以,像一些几乎每天更新的软件如git, svn, cvs, bzr等等效果显著,当然如果你想对同一个版本的软件修改编译参数也依然能享受到速度的乐趣。总之,有利无害,能够确保编译效果和make clean之后一致。
wiki上有相关介绍,只是过时了,其实改一处地方即可。见原文: http://wiki.archlinux.org/index.php/...h_ccache_HOWTO

主页:http://ccache.samba.org
介绍:ccache is a compiler cache. It acts as a caching pre-processor to C/C++ compilers, using the -E compiler switch and a hash to detect when a compilation can be satisfied from cache. This often results in a 5 to 10 times speedup in common compilations.

The idea came from Erik Thiele wrote the original compilercache program as a bourne shell script. ccache is a re-implementation of Erik's idea in C with more features and better performance.
安装:
sudo pacman -S ccache。
设置:修改/etc/makepkg.conf
找到ccache,把前面的!去掉保存即可,改成 BUILDENV=(fakeroot !distcc color ccache !xdelta)
注意:ccache会在~/.ccache保存缓存的编译文件,可以设置缓存大小,文件数目等。具体参见man ccache。

顺便说一下,makepkg.conf里还有不少东西可以修改,参见:http://wiki.archlinux.org/index.php/Makepkg.conf

cflags就不再多说了,推荐用 CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer"
多核的可以打开MAKEFLAGS="-j2"
分布式编译可以打开distcc
想要man以外的doc,可以去掉OPTIONS=(strip !docs libtool emptydirs)中 !doc 前的!
PKGDEST可以设置生成包的路径,尤其是yaourt喜欢把aur的生成的包都放在/tmp,导致如果你选择不安装就会被删掉,浪费时间。
SRCDEST可设置下载的source的保存地址。
PACKAGER设置你的名字,以后包的信息中就会有了。
还有一些参见wiki。

此帖于 08-05-27 05:28 被 zhuqin_83 编辑.
  zhuqin_83 当前离线   回复时引用此帖
旧 08-05-27, 04:31 第 2 帖
wd_afei 帅哥
 
wd_afei 的头像
 
 
注册会员  
  注册日期: Jul 2003
  我的住址: Beijing
  帖子: 2,322
  精华: 5
 

编辑一下文章,把 wiki 地址加上吧。







__________________
wd
irc.oftc.net/6667 #chat-cn, #openbox-cn
  wd_afei 当前离线   回复时引用此帖
旧 08-05-27, 07:12 第 3 帖
xdg3669
 
 
 
注册会员  
  注册日期: Jan 2008
  帖子: 86
  精华: 0
 

好呀!这个就会加快速度了,减少编译的时间。
  xdg3669 当前离线   回复时引用此帖
旧 08-05-27, 11:07 第 4 帖
firefoxmmx
 
firefoxmmx 的头像
 
 
注册会员  
  注册日期: Mar 2004
  帖子: 1,876
  精华: 2
 

楼上貌似弄错了。。这个是用在非第一次编译的时候加速的。第一次编译还是那个速度,除非你经常编译同一个包,不然是没有必要使用的







__________________
DELL V 1500
Intel Core Duo T7500,
2GB DDR2,
320GB SATA
15.3" 1280*800,
Nvidia GF8600M GT 256MB,
DVD R+/-W
---
佛经说,人有八苦:生老病死求不得怨憎,爱别离五阴盛,故我苦
圣经说,人有七罪:饕餮贪婪懒惰淫欲傲慢嫉妒暴怒,故我有罪
  firefoxmmx 当前离线   回复时引用此帖
旧 08-05-27, 11:55 第 5 帖
superjet
 
 
 
注册会员  
  注册日期: Jun 2006
  帖子: 295
  精华: 1
 

如果经常更新cvs、svn、git等的包,ccache还是值得用的

makepkg.conf设置的结果,只是makepkg使用时简单将/usr/lib/ccache/bin的路径致前,需要进一步定制的话,要么简单包装一个makepkg(当然需要chmod
+x的)放到最前的搜索路径中,要么在~/.bashrc中设置相关环境变量等,个人的是~/bin/makepkg,同时~/.bashrc中的搜索路径为:
export PATH=$HOME/bin:$PATH

同时debian中的ccache有许多补丁最好打上(apt-get source
ccache后,将ccache-2.4/debian/patches移至ccache目录下)
打包时,pkgbuild中加上:
代码:
... for i in ${startdir}/patches/*.diff; do patch -p0 -i $i ; done ...
  superjet 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 10:18


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2012, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2011, LinuxSir.Org