我有一個龐大的項目,大約150 000個LOC的C++代碼。建造時間約爲15分鐘。該項目由許多不同規模的子項目組成。GCC編譯時間不會從預編譯頭文件中獲益太多
我已經爲每個子項目構建了單獨的預編譯頭文件,但是當我使用它們時,構建時間保持大致相同。看起來,構建時間減少5-10%,而不是更多。
預編譯頭肯定是用,我用-Winvalid-pch
選項,我試圖與-H
編譯器選項來編譯,我的預編譯頭出現在「砰」的標誌,這意味着編譯器能夠使用預編譯頭輸出。
我所有的預編譯頭文件都不是很大,每個文件大約50Mb。 我使用python腳本,找到here來生成最常用的預編譯頭文件列表,所以我的預編譯候選列表相當不錯。
是否有任何免費/開源的構建優化工具?看起來,標準make
實用程序沒有能力測量不同目標的構建時間。我找不到用make
獲得不同目標統計數據的方法。我不是在談論依賴關係分析還是先進的東西。我只想知道大部分時間裏哪些目標被浪費了。
另外,看起來GCC在處理預編譯頭文件時效率很低。我無法讓任何子項目的構建速度提高得更快,我得到的最大加速比爲20%,這個項目需要三分鐘才能完成。使用固態硬盤購買速度更快的機器似乎比使用GCC優化Linux上的編譯時間要容易和便宜。
嘗試使用駐留在/ dev/shm中的源代碼和輸出目錄來構建。如果構建時間急劇下降,那麼之前的構建文件系統是構建時間的主要貢獻者。 – bobah
我不會那麼大。更像是一箇中小型項目:) –
@BЈовић同意,但在我的機器上編譯速度更快(或至少可比)。 – Lazin