一、什麼是ccache
什麼是ccache?簡單地講,這個工具,可以在專案初次編譯時快取部分編譯結果,在下一次編譯時直接讀取該部分快取,從而提高整體的編譯速度。詳情可至官網了解(
二、使用
1.安裝
./configure
make
make install
2.配置
假設專案在xcode中設定了以llvm-gcc作為編譯器,通過檢視編譯時log
注意上圖紅框中的內容,我們可知專案是呼叫了
接著cd到
可以發現lvm-gcc-4.2實際是軟鏈到../llvm-gcc-4.2/bin/llvm-gcc-4.2,
../llvm-gcc-4.2/bin/llvm-gcc-4.2才是真正的
llvm-gcc-4.2「所在地」
現在需要對檔案進行修改:
首先,將
llvm-gcc-4.2軟鏈到ccache(ccache安裝在/usr/local/bin下,因此可以執行 ls -s /usr/local/bin/ccache /
llvm-gcc-4.2)
接著,輸入which llvm-gcc-4.2,得到的輸出是「/usr/bin/llvm-gcc-4.2",ccache會呼叫
/usr/bin/llvm-gcc-4.2來進行編譯,因此我們需要將這裡的
/usr/bin/llvm-gcc-4.2替換成上文提到的」
../llvm-gcc-4.2/bin/llvm-gcc-4.2「(軟鏈或複製貼上均可)
現在再進行編譯,ccache就會進行快取了(可以通過ccahce -s命令檢視快取命中情況)
三、專案實踐
選取了三個專案進行實際的測試
專案檔案數
原生編譯
使用ccache第一次編譯
使用ccache第二次編譯
第二次編譯命中數/總快取檔案數
快取檔案大小
a2294
36s48s
30s101/203
36mb
b9079
2333s
24s4/8
59.4 mb
c692
102111s
1024/8
33.2mb
存在問題:如果專案是採用clang進行編譯,編譯會失敗,目前還沒找到辦法解決
專案應如何啟動
描述 某經營鋼材產品的公司,近幾年業務得到了成倍的發展,原來採用手工處理業務的方式此時顯得力不從心。因此,經過公司董事會的決定,在公司推行一套管理軟體來替代原有的手工作業的方式,同時,請公司的副總負責此專案的啟動工作。副總接到任務後,隨即開始了專案的啟動工作。專案經過前期的一些工作後,副總任命小胡為...
構建c c 專案時新增巨集定義
有時候我們希望在構建時能夠在命令列新增一些巨集定義,改變程式行為。乙個典型應用示例是 裡通過檢查是否定義了debug巨集,來決定是否輸出除錯資訊。編譯器一般提供命令列選項支援這種做法,例如使用 gcc 時可以在命令列新增 d選項,定義一些巨集 gcc ddebug 1 a.c不過,大型專案一般都需要...
在中國應如何改良Scrum框架
在我的csdn部落格 上面,我發表了乙個 為什麼純粹的scrum在中國很難落地 系列,其中通過解讀新版的scrum guide來分析如果在中國嚴格照搬scrum會遇到哪些困難,有興趣的讀者可以去看看,而在本文中將在總結scrum框架缺陷的基礎上,討論應如何改良scrum框架,以保證實施成功。首先,何...