AFAIK,预处理器模式很简单:你给 ccache 一个预处理源,它对源和命令行参数进行哈希处理,然后存储所有相应的信息,如标准错误、目标文件等。
但是什么是直接模式,为什么它要快得多?它背后的概念是什么?
AFAIK,预处理器模式很简单:你给 ccache 一个预处理源,它对源和命令行参数进行哈希处理,然后存储所有相应的信息,如标准错误、目标文件等。
但是什么是直接模式,为什么它要快得多?它背后的概念是什么?
“直接模式”中的“直接”是指“不使用预处理器直接读取头文件”。这样做是因为与仅读取包含文件内容相比,大多数预处理器相对较慢。这是因为预处理器必须做一些事情,比如扩展宏来产生正确的预处理输出。对于 ccache 的目的,识别头文件的内容就足够了,而不是在计算哈希时对内容进行正确的预处理。
另请参阅ccache 手册中的 ccache如何工作部分。
http://ccache.samba.org/performance.html
对于缓存未命中,直接模式比预处理器模式具有更高的开销,但缓存命中要快得多希望这对您有所帮助。