Ads 468x60px

##EasyReadMore##

03 11月, 2017

ccache 加速 compile 速度:

是否有開ccache
這個影響很大,有ccache的話,即使clean build時間也能大幅縮短將近30%~40%左右
source code放傳統硬碟或SSD這個影響有但是不大,但ccache放在SSD或ramdisk

安裝:

可用 apt-get install ccache
或者想要最新的可直接從官網下載
https://ccache.samba.org/download.html
$ tar xvjf ccache-2.3.tar.bz2
切換到那個目錄:
$ cd ccache-2.3
配置:
$ ./configure
編譯:
$ make
最後,安裝ccache:
$ make install
您就準備好開始使用了!

ccache 環境設定(基本上不用更動):

ccache -M 512M    //設定緩存的空間 使用時要注意的是 cache 的 size 不要太大,我今天查了一下我的 cache 容量是 9.2GB,有 71萬個檔案...這個就要很久才可以清光! 大約用 512M 或 1G 就很好用了.
基本上 cache 會建置在家目錄下的 .ccache
若要建立在 ramdisk 設定如下:
mount -t tmpfs -o size=512M none /tmp     //有的系統 /tmp 還不是 ramdisk ,掛載 ramdisk 給它
export CCACHE_DIR=/tmp/.ccache     //建立緩存的目錄
但要注意的是 /tmp 下重開機就清掉了,等於下次重開機還是要再重 build 一次

#檢查 ccache 設定是否正確:

$ ccache -s
  cache directory                     /tmp/.ccache     //暫存已設定在 /tmp 下
primary config                      /tmp/.ccache/ccache.conf
  secondary config      (readonly)    /usr/local/etc/ccache.conf
  cache hit (direct)                    38
  cache hit (preprocessed)               0
  cache miss                            19
  cache hit rate                     66.67 %
  called for link                        3
  cleanups performed                     0
  files in cache                        39
  cache size                           7.8 MB
  max cache size                       5.0 GB

使用方法:

如上所述,ccache 在您與您的普通編譯器之間進行工作。以gcc 為第一個參數調用ccache,而不是調用gcc。例如,要在命令行中編譯一個文件,您通常會使用:
$ gcc foo.c
要使用ccache,您應該輸入:
$ ccache gcc foo.c
像這樣對一個文件進行單獨的編譯,尤其是第一次使用ccache 編譯那個文件時,您將不會看到有任何的幫助,因為編譯信息還沒有被高速緩存。所以,配置ccache 永久地取代主要編譯器通常來說更為有效。設置CC 環境變量的值來完成這一任務:
$ export set CC='ccache gcc'
./configure CC="ccache gcc" CXX="ccache g++

global 環境設定:

pushd /usr/local/
sudo mkdir bin-ccache
cd bin-ccache
sudo ln -s $(which ccache) gcc
sudo ln -s $(which ccache) g++
sudo ln -s $(which ccache) cpp
sudo ln -s $(which ccache) c++
sudo ln -s $(which ccache) cc
#將環境變數加到每次啟動
方法一:修改/etc/bash.bashrc文件(此文件只對當前用戶適用)
echo "export PATH=/usr/local/bin-ccache:\$PATH" >> ~/.bashrc
方法二:修改/etc/profile文件(此文件屬於系統級別的環境變量,設置在裡面的東西對所有用戶適用
$sudo gedit /etc/profile
export PATH=/usr/local/arm/toolchain/bin-ccache:/usr/local/arm/toolchain/bin:$PATH
方法三:修改/etc/environment文件
$sudo gedit /etc/environment
export PATH=..............

cross compiler 環境設定:

ccache sh4-linux-gnu-gcc -c hello.c
直接改 Makefile
export CC="ccache sh4-linux-gnu-gcc"
export CXX="ccache x86_64-poky-linux-g++ -m64 -march=corei7 -mtune=corei7 -mfpmath=sse -msse4.2 --sysroot=/opt/poky/2.0/sysroots/corei7-64-poky-linux"

bitbacke 環境設定:

export CCACHE="ccache"
不行的話試著改下面
vim meta/conf/bitbake.conf
CCACHE = "ccache"
如果還不行 mark 掉下面
#export CCACHE_DISABLE ??= "${@[0,1][d.getVar('CCACHE', True) == '']}"
#export CCACHE_DIR ??= "${@os.getenv('HOME')}"

其它指令:

ccache -C //刪除 cache file
export CCACHE_DISABLE = 1 //停止使用 ccache

Refer:

Conrad Parker - https://goo.gl/8F2fxy
Tasuka's Workbench - 用 ccache 加快 compiler 的速度 - https://goo.gl/rRjQ8Y
[Tool] 使用ccache可以加快build code的速度 @ ~No Magic Just Basic~ :: 痞客邦 PIXNET :: - https://goo.gl/tXhYjP
通過ccache 改善協同構建時間 - https://goo.gl/KRPdum
  - https://goo.gl/K5A38g
  - https://goo.gl/1ZNCvS

0 意見:

張貼留言

 
Blogger Templates