编译 AOSP 8.1 时,Ccache 不会增长超过 1GB,最大大小 = 30GB

Ccache not growing over 1GB with max size = 30GB when compiling AOSP 8.1

我正在我的构建服务器上编译 AOSP 8.1.0 源代码树。我用 Ubuntu 16.04 需要的所有包制作了一个 docker 图像。我在启动 docker 图像时安装了源代码树、ANDROID_OUT 和 ccache 目录。这三个目录在docker中的路径是一样的:

来源:/home/builder/android_source/AOSP_8.1/

输出:/home/builder/android_out/AOSP_8.1/

缓存:/home/builder/ccache/

问题是我不明白 ccache 的行为。 如果我在编译 android 时 运行ning watch ccache -s,我会看到如下内容:

files in cache: 10365
cache size: 931.9MB

这些值会在几秒后增加或减少。我已将最大缓存大小设置为 30GB,ccache -s 告诉我这个正确的最大大小,但缓存大小永远不会超过 1Gb。我在 5 个构建 运行 之后看到的最大大小约为 983MB。

我尝试了什么?

1) chown -R builder:builder ~/ccache/

2) docker 中的 ccache -M 30G。最大大小设置为 30GB,行为保持不变。

3) ccache -C - 缓存清除,一切都变得更好了。

我的缓存有什么问题?

出于某种奇怪的原因,这种情况是由于系统 ccache 和 android ccache 之间的某些不兼容造成的。做完后

ccache -M 50G

使用 android 源目录中的 ccache 实用程序一切正常。

如果有人仍然感兴趣,答案是:

Android:
prebuilts/misc/linux-x86/ccache/ccache-M 50GB 将 50GB 作为 50*65536 存储在你的 /0 到第 15 行的 f/stats 中。

格努:
/usr/bin/ccache 工具按照手册中的说明保存在您的: /ccache.conf(通常是 /etc/ccache.conf 或 /usr/local/etc/ccache.conf ) 或 /ccache.conf(通常是 $HOME/.ccache/ccache.conf) 作为人类英文文本: max_size = 50GB

所以每个工具都把它放在不同的地方。但是 android 没有说明书。