簡體   English   中英

將 Ccache 配置為僅使用輔助存儲?

[英]Configure Ccache to only use secondary storage?

如何將 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 存儲庫的 function - https://github.com/ccache/ccache/blob/3a2f970842417ea605d24b07af652be91c7eff31/src/storage/Storage.cpp#L292中,在我看來,不可能立即將文件放入輔助存儲無需先更新主存儲。 據我了解,您最好的選擇是將--max-size配置為您提到的相當小的值。

您是否考慮過使用任何替代方案? sccache支持跨構建器共享單個緩存,因此它可能正是您正在尋找的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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