GitHub Actions CI 中的 Ccache 命中率为 0.00 %

Fra*_*rzi 6 c++ macos ccache azerothcore github-actions

我们的 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
Run Code Online (Sandbox Code Playgroud)

AzerothCore macOS ccache 问题

因此,macOS 构建大约需要 40 分钟才能完成。

因此,尽管我尝试以macOS与其他构建相同的方式设置构建ubuntu-*,但我未能使 ccache 正常工作,而且我不明白为什么。

如何ccache与太一起工作macOS

Joe*_*ahl 5

问题很可能是最大缓存大小太小。如果构建的结果(主要是目标文件)不适合最大缓存大小,则不会为下一个构建留下可用的结果,并且您只会遇到缓存未命中。

\n

构建前执行的清理次数为 2976 次,构建后执行的清理次数为 3353 次,因此执行了377 次自动清理。由于最大缓存大小为 500 MB,因此每次清理删除了大约 500 * (1 - 0.8) / 16 MB = 6.25 MB,因此所有清理总共删除了大约 377 * 6.25 MB \xe2\x89\x88 2356 MB 数据。这应该大约是一次构建结果的大小。(0.8 是默认的“limit_multiple”,16 是指缓存中子目录的数量。)

\n

尝试大幅增加缓存大小限制。根据以上计算,良好的缓存大小至少为 5 GB。您还可以或替代地启用压缩 ( CCACHE_COMPRESS=1) 以在缓存中容纳更多结果。

\n