是否将Ccache配置为仅使用辅助存储



如何将Ccache配置为只使用辅助存储作为缓存,而完全跳过主存储?


我们的CI管道使用容器来编译和构建C++应用程序。我们希望使用Ccache来减少构建时间,并希望缓存与所有管道共享。为此,Ccache的辅助存储选项似乎很理想,但我们不知道如何配置Ccache以完全跳过主存储(本地缓存(。

我们希望Ccache立即联系辅助存储,但我认为如果本地缓存生成的缓存首先未命中也可以。理想情况下,不更新本地缓存,以免在那里浪费时间。当然,无论何时发生丢失,都必须更新辅助存储。

我曾考虑将--max-files--max-size设置为0,但这是一个完全不设置限制的特殊值。将这些选项设置为1可能会起作用,但它也会不必要地触发Ccache的清理逻辑,浪费时间。

我还注意到配置选项read_only,但文档中明确指出:";。。。但它不会将新结果添加到任何高速缓存后端";,这意味着我们的辅助存储永远不会更新。

您可以通过在配置文件中设置remote_only = true或设置环境变量CCACHE_REMOTE_ONLY,将Ccache 4.7及更新版本配置为仅使用远程存储(过去称为辅助存储(。

功能文档:https://ccache.dev/manual/4.7.4.html#config_remote_only

在ccache存储库的以下功能中-https://github.com/ccache/ccache/blob/3a2f970842417ea605d24b07af652be91c7eff31/src/storage/Storage.cpp#L292,在我看来,如果不首先更新主存储器,就不可能立即将文件放入辅助存储器。据我所知,您最好将--max-size配置为您提到的一个相当小的值。

您是否考虑过使用任何替代方案?sccache支持在构建器之间共享单个缓存,因此它可能正是您想要的。

相关内容

  • 没有找到相关文章

最新更新