簡體   English   中英

GitHub Actions CI 中的 Ccache 命中率 0.00 %

[英]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

AzerothCore macOS ccache 問題

因此,macOS 構建需要大約 40 分鍾才能完成。

因此,盡管我嘗試以與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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM