[英]Ccache hit rate 0.00 % in GitHub Actions CI
在我們的 C++ 項目中,我們設法設置GitHub Actions使用ccache構建我們的源代碼。
它在 Linux 上運行良好,多虧了ccache
,構建在不到 5 分鍾的時間內成功。
不幸的是,當嘗試在 macOS 上構建時, ccache
似乎不起作用,給出:
cache directory /Users/runner/.ccache
primary config /Users/runner/.ccache/ccache.conf
secondary config (readonly) /usr/local/Cellar/ccache/3.7.11_1/etc/ccache.conf
stats updated Sun Aug 23 11:57:31 2020
cache hit (direct) 0
cache hit (preprocessed) 0
cache miss 7175
cache hit rate 0.00 %
cache file missing 1
cleanups performed 2976
files in cache 165
cache size 422.4 MB
max cache size 500.0 MB
因此,macOS 構建需要大約 40 分鍾才能完成。
構建示例: https : //github.com/azerothcore/azerothcore-wotlk/runs/1018358261
這是定義操作的地方: https : //github.com/azerothcore/azerothcore-wotlk/blob/master/.github/workflows/core_build.yml
整個項目的源代碼公開在: https : //github.com/azerothcore/azerothcore-wotlk
因此,盡管我嘗試以與ubuntu-*
相同的方式設置macOS
構建,但我未能使 ccache 正常工作,我無法弄清楚原因。
如何讓ccache
適用於macOS
?
問題很可能是最大緩存大小太小。 如果構建的結果(主要是目標文件)不適合最大緩存大小,那么下一次構建將沒有可用的結果,您只會得到緩存未命中。
構建之前執行的清理是 2976 次,構建之后是 3353 次,因此執行了 377 次自動清理。 由於最大緩存大小為 500 MB,因此每次清理刪除了大約 500 * (1 - 0.8) / 16 MB = 6.25 MB,因此所有清理一起刪除了大約 377 * 6.25 MB ≈ 2356 MB 的數據。 這應該大約是一次構建結果的大小。 (0.8 是默認的“limit_multiple”,16 是指緩存中的子目錄數。)
嘗試大幅增加緩存大小限制。 根據以上計算,好的緩存大小至少為 5 GB。 您還可以或替代地啟用壓縮( CCACHE_COMPRESS=1
)以在緩存中容納更多結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.