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)
因此,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
因此,尽管我尝试以macOS与其他构建相同的方式设置构建ubuntu-*,但我未能使 ccache 正常工作,而且我不明白为什么。
如何ccache与太一起工作macOS?
问题很可能是最大缓存大小太小。如果构建的结果(主要是目标文件)不适合最大缓存大小,则不会为下一个构建留下可用的结果,并且您只会遇到缓存未命中。
\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) 以在缓存中容纳更多结果。
| 归档时间: |
|
| 查看次数: |
1264 次 |
| 最近记录: |