Android ccache在工作区之间共享

时间:2014-04-25 23:37:50

标签: android performance android-source ccache

我想分享使用一个工作区构建的ccache以供另一个工作区使用,以便使用一份ccache数据来编译相同的源代码。

E.x: 1)创建了一个工作区(home / user / source_code1)。 2)从服务器同步这里的代码。 3)使用USE_CCACHE = 1

编译代码

以上将构建我的ccache。现在我做以下

案例1: 1)创建了一个工作区(home / user / source_code2)。 2)从服务器同步相同的源代码。 3)我在早期工作区中进行了相同的编译。

案例2: 1)删除工作区home / user / source_code1 2)重新创建早期工作区(home / user / source_code1)。 2)从服务器重新同步此处的代码。 3)使用USE_CCACHE = 1

编译代码

我希望source_code2编译使用从source_code1构建的ccache,当我删除并重新创建相同的工作区时,我需要使用已构建的ccache进行编译。 欢迎提出任何指标!

我在上述两种情况下看到的结果是虽然构建了ccache但它从未使用过,或者ccache中没有命中,每当使用新工作区时它都会不断构建,如果我只是清理在同一个工作区中构建和重新编译而不删除任何早期的源代码(home / user / source_code1),然后ccache编译跳进来,有些命中有助于减少构建时间。

我知道为什么每当使用全新的工作区时我都没有看到任何ccache命中?

我总是有" ccache miss"增加而不是"缓存命中(直接),或缓存命中(预处理)"。 "缓存命中(直接)"总是0。

我设置了以下变量。

CCACHE_BASEDIR=/home/user
USE_CCACHE=1
CCACHE_DIR=/home/user/ccache
CCACHE_SLOPPINESS=time_macros,file_macro

如果我在这里错过了什么,请告诉我。

1 个答案:

答案 0 :(得分:1)

也许你需要用ver替换ccache。 3.x或以上。
据我所知,包含在android源代码树中的ccache是​​ver。 2.4。
CCACHE_BASEDIR正在ccache 3.x中工作,您可以参考下面的链接。

Set CCACHE_BASEDIR to share object files between trees

Andorid构建脚本将使用他们预先构建的工具,而不是系统中安装的工具。