Linux编译ccache的使用
来源:互联网 发布:麦克风淘宝 编辑:程序博客网 时间:2024/05/21 22:49
如果你经常编译大型的C/C++工程,不使用ccache你就out了。
使用ccache
cache is a compiler cache. It speeds up recompilation by caching previous compilations and detecting when the same compilation is being done again. Supported languages are C, C++, Objective-C and Objective-C++.
使用ccache
- 编译指令前增加ccache. $ ccache gcc xxx
- 创建软链接。 $ ln -s ccache /usr/local/bin/gcc
建议使用第一种方式,因为ccache偶尔也犯晕,当由于它出现错误的时候, 很难看出端倪。曾在某次编译某份代码时,ccache对某个编译选项的判断失误导致编译失败,死活查不出来为什么原因。所以当出现某些怪异的现象时,请用正常的方式编译试试。
- 编译软件包
- [/tmp/bash-4.1 0]$ uname -a
- Linux AP 2.6.37-gentoo #1 SMP PREEMPT Sun Jan 16 14:55:15 CST 2011 i686 Intel(R) Core(TM)2 Duo CPU T8100 @ 2.10GHz GenuineIntel GNU/Linux
- [/tmp/bash-4.1 0]$ CC="ccache gcc" ./configure
- [/tmp/bash-4.1 0]$ time make
- real 0m47.343s
- user 0m39.572s
- sys 0m3.244s
- [/tmp/bash-4.1 0]$ make clean
- [/tmp/bash-4.1 0]$ time make
- real 0m10.131s
- user 0m5.597s
- sys 0m1.077s
由上可以看出,使用ccache后, 编译速度快了5倍(中间很长一段时间不是gcc在编译,否则更快)。Wonderful..
- 编译内核
- [/tmp/linux-2.6.34 0]$ uname -a
- Linux boeye-AP 2.6.37-gentoo #1 SMP PREEMPT Wed Jan 12 20:06:14 CST 2011 x86_64 AMD Athlon(tm) II X4 630 Processor AuthenticAMD GNU/Linux
- [/tmp/linux-2.6.34 0]$ grep "make" build
- 28:make -j4 ARCH=arm CROSS_COMPILE="ccache arm-linux-" O=$outdir $@
- [/tmp/linux-2.6.34 0]$ time ./build
- real 3m4.146s
- user 10m30.640s
- sys 0m37.138s
- [/tmp/linux-2.6.34 0]$ ./build clean
- [/tmp/linux-2.6.34 0]$ time ./build
- real 0m23.714s
- user 0m31.603s
- sys 0m12.777s
在交叉编译内核时,编译速度也快了近9倍。
- 编译Android
Android中,使用ccache,只需要添加环境变量'$ export USE_CCACHE=1', 不同的是,默认它不用HOST的ccache程式,而使用自带的ccache. 编译android需要较大的缓冲区:
- $ ccache -M 3G // 将缓冲区设置为3G
看过以上三个例子,如果你仍没有使用ccache的欲望,欢迎告诉我理由:)
0 0
- Linux编译ccache的使用
- Android 编译使用CCACHE
- linux下安装和使用ccache加快编译
- 编译andorid时使用ccache
- 如何使用ccache加快编译
- ccache的使用
- ccache的使用
- 通过使用ccache加速android 源码编译的配置
- 提高Android编译效率--ccache的原理及使用
- 提高安卓的编译速度 -- 使用ccache
- Linux ccache 工具的安装
- Android 源码编译加速 使用ccache
- Android 源码编译加速 使用ccache
- 使用ccache大幅度加速gcc编译速度
- 使用ccache大幅度加速gcc编译速度
- 使用ccache加快Android源码编译
- Android使用ccache减少编译时间
- Android使用ccache减少编译时间
- httpclient
- 75 Android WebView (五)
- iOS开发经验-2014-1-17
- ArcGIS API for Silverlight中加载Google地形图(瓦片图
- yii的单元测试
- Linux编译ccache的使用
- libPods.a的神秘面纱--使用CocoaPods来做iOS程序的包依赖管理
- java面试题
- Eclipse快捷键大全
- Neutron的context携带哪些数据
- nil/Nil/NULL/NSNull的区别
- C#中Thread.Sleep()的作用及用法
- Sip相关介绍
- scope="prototype"