【问题标题】:Ccache not growing over 1GB with max size = 30GB when compiling AOSP 8.1编译 AOSP 8.1 时,Ccache 不会增长超过 1GB,最大大小 = 30GB
【发布时间】:2018-07-24 10:22:25
【问题描述】:

我正在构建服务器上编译 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/

ccache: /home/builder/ccache/

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

files in cache: 10365
cache size: 931.9MB

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

我尝试了什么?

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

2) ccache -M 30G 在泊坞窗中。最大设置为 30GB,行为保持不变。

3) ccache -C - 缓存被清除,没有什么好转的。

我的 ccache 出了什么问题?

【问题讨论】:

    标签: android android-source ccache


    【解决方案1】:

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

    ccache -M 50G
    

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

    【讨论】:

      【解决方案2】:

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

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

      牛羚:
      /usr/bin/ccache 工具保持如手册中所述: /ccache.conf(通常是 /etc/ccache.conf 或 /usr/local/etc/ccache.conf ) 或 /ccache.conf(通常为 $HOME/.ccache/ccache.conf) 作为人类英文文本: max_size = 50GB

      因此,每个工具都将其保存在不同的位置。但是安卓没有说明书。

      【讨论】:

      • /0 to f/stats in line 15 是什么意思?
      • /0 to f/stats in line 15 表示在CCACHE_DIR中有目录0/..f/。每个都有一个stats 文件,用于保存统计信息max_sizemax_files 配置。 max_sizestats 文件的第 15 行,max_files 是第 14 行。这适用于 ccache 3.1.9 - 我不确定它是否适用于所有其他版本。 AOSP 构建使用./prebuilts/misc/linux-x86/ccache 中的ccache 二进制文件。该预构建的源代码也在一个 tarball 中。
      猜你喜欢
      • 2014-03-19
      • 2016-10-29
      • 2019-10-10
      • 2020-05-05
      • 1970-01-01
      • 2022-10-19
      • 2010-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多