最近在读sqlite3的源码。在合并版本中,只有四个文件。上官方网站, 他们说:
“合并也使其运行得更快”
“当我们使用合并来编译 SQLite 而不是单独的源文件时,我们测量到性能提高了 5% 到 10%。”
我不明白他们是如何做到的以及为什么。有人有什么想法吗?我们有可用的工具来做到这一点吗?
如果解析所有 .c 文件,提取所有内容,您可以得到类似的结果#include
s,然后构建一个巨大的文件,首先列出所有包含内容,然后列出这些 .c 文件的所有其他内容。
这样,您就可以将所有代码放在一个翻译单元中,从而使编译器可以立即查看所有代码并执行更好的优化。这与大多数 C 编译器相关,但最新的编译器具有所谓的链接时代码生成这允许编译器一次(在链接时)查看多个翻译单元的代码,并生成更好的代码,即使没有合并技巧。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)