公司里 C++代码越来越多,修改一处代码,之后编译时间需要耗费十分钟以上。
由于编译过程是 一堆 Shell 脚本 + 各种 Makefile ,依赖错综复杂,不能直接利用 make 的增量编译。
我看中了 Ccache ( https://ccache.dev ),它可以伪装成 G++ 编译器,调用真正的 G++ 并将结果缓存至 ~/.ccache 。Ccache 遇到同样的编译后,直接返回缓存结果加快编译速度。
实测 Ccache 可以将这些代码编译时间压缩到两分钟。然而,我更关心 Ccache 是怎么判断代码未被更改,命中缓存的。
已知 Makefile 根据文件修改时间判断代码未被更改,这个感觉不太靠谱,而且 git 切到其他分支再回来,修改时间就变了。
所以判断代码是否更新这一点还是很重要的,做的不好会有以下副作用:
其中最担心的是第二点,更新了代码却使用缓存,那就不靠谱了。
有使用过 Ccache 的兄弟们欢迎交流~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.