ccache 预处理器和直接模式有什么区别



AFAIK,预处理器模式很简单:你给ccache一个预处理的源,它散列源和命令行参数,然后存储所有相应的信息,如stderr,对象文件等。

但是什么是直接模式,为什么它更快?它背后的概念是什么?

"

直接模式"中的"直接"是指"直接读取头文件而无需使用预处理器"。这样做是因为与仅读取包含文件内容相比,大多数预处理器相对较慢。这是因为预处理器必须执行诸如扩展宏之类的操作才能生成正确的预处理输出。出于 ccache 的目的,识别头文件的内容就足够了,而不是在计算哈希时正确预处理内容。

另请参阅 ccache 手册中的 ccache 工作原理部分。

http://ccache.samba.org/performance.html

直接模式的开销高于缓存未命中的预处理器模式,但缓存命中速度要快得多希望这对你有帮助。

最新更新