每次我下载SQLite时,我都会遇到这样一个事实,即他们提供了几个不同版本的源代码,这是我从未见过任何其他项目所做的事情.而且更多的是它们提供了源的合并,将所有文件合并为3个文件.这是什么原因?这只是编译速度吗?还是有一些非常好的理由呢?其他项目是否使用源代码合并?
正如其关于合并的页面上直接说明的那样
除了使SQLite更容易合并到其他项目之外,合并还使其运行得更快.许多编译器能够在代码包含在单个转换单元中时对代码进行额外的优化,例如它在合并中.当我们使用合并来编译SQLite而不是单个源文件时,我们已经测量了5到10%的性能改进.这样做的缺点是额外的优化通常采用函数内联的形式,这往往会使得到的二进制图像的大小变大.
我自己也看到了将其纳入其他项目的最大好处.它简单地使编译更容易.没有构建脚本混乱以及拥有大量源文件后的其他内容.