检查 ccache 调用是否是缓存命中

mrk*_*rks 5 ccache

作为构建过程的一部分,我想获取有关构建时间以及 ccache 是否在缓存中找到该项目的统计信息。我知道在ccache -s哪里可以比较以前和当前的缓存命中数。

但是,如果我有数百个并行运行的编译线程,则统计信息不会告诉我是哪个文件导致了命中。

的返回码ccache是编译器的返回码。有什么办法可以让 ccache 告诉我它是否成功?

Joe*_*ahl 6

有两种选择:

  1. 启用 ccache 日志文件log_file在配置(或环境变量CCACHE_LOGFILE)中设置为文件路径。然后你可以从日志数据中找出每次编译的结果。如果有许多并行 ccache 调用(日志文件在所有调用之间共享,因此来自不同进程的日志记录将被交错)可能会有点乏味,但通过考虑每个日志行的 PID 部分是可能的。
  2. 在 ccache 3.5 及更新版本中,最好启用调试模式debug = true在配置(或环境变量CCACHE_DEBUG=1)中设置。然后,ccache 会将每个生成的目标文件的日志存储在<objectfile>.ccache-log. 在 ccache 手册中的缓存调试中阅读更多内容。