c++ - ccache 如何提高构建速度?
问题描述
我正在使用 cmake 设置我的项目,当我更改项目中的文件时,我发现我的 cmake 知道只重新编译更改的文件,然后将所有内容重新链接在一起以获得最终的可执行文件/lib。
然后我通读了有关 ccache 的文档,我不明白的是:ccache 的方法(使用哈希值检查文件是否已更改并需要重新编译)与 cmake 使用的默认方法(或那里)有什么区别可能是其他东西,而不是 cmake 检查文件更新,但你知道我的意思)。可能 PCH 部分有所不同,但是 cmake 3.18 现在带有 PCH 支持,那么,这是否意味着 ccache 在 PCH 部分提供的好处不再是唯一的?
解决方案
考虑一下您切换到项目的某个较旧分支的情况 - 您过去确实编译过并且 ccache 已缓存,但 CMake 认为“几乎所有文件都已更改并且必须重新编译” - 这就是您看到巨大收益的地方.
另一种情况是您删除了构建目录(出于某种原因),现在必须重新构建所有内容。ccache
那里也是一个巨大的帮助。
还; ccache
设置起来很简单,从那时起就完全不可见/透明,所以真的没有理由不使用它。当它有帮助时,它通常有很大帮助,当它没有帮助时,它不会受到伤害。
推荐阅读
- javascript - Async JS 错误消息:> Uncaught TypeError: (intermediate value)(...) is not a function(更多下文)
- arrays - python List 和 Numpy 数组如何工作?
- javascript - 属性不同时如何按日期对对象数组进行排序
- javascript - Javascript strptime() 增加了一个月
- python-3.x - cdk 警告没有向“PrivateSubnet1”处的子网提供 routeTableId
- r - 在 R 中,如何添加包含 ==x 的列中值的计数的行?
- vb.net - VB.NET 使用 SendKeys.Send
- hybris - 无法在 hybris 后台搜索目录
- java - 在Android中重新字符串化一个字符串
- python - 从python中的对象列表中获取最小值和最大值