每次我下载 SQLite 时,我都会发现他们提供了几个不同版本的源代码,这是我实际上从未见过的任何其他项目所做的事情。更重要的是,他们提供了源代码合并,将所有文件合并为 3 个文件。这是什么原因?仅仅是编译速度吗?还是有一些非常好的理由?其他项目是否使用源代码合并?
Robert Gould
问问题
1067 次
3 回答
10
正如他们关于合并的页面上直接所述
除了使 SQLite 更容易融入其他项目之外,合并还使其运行速度更快。当代码包含在单个翻译单元中(例如合并中)时,许多编译器能够对代码进行额外的优化。当我们使用合并来编译 SQLite 而不是单独的源文件时,我们测量到了 5% 到 10% 的性能改进。这样做的缺点是额外的优化通常采用函数内联的形式,这往往会使生成的二进制图像的大小更大。
我自己认为最大的好处是融入其他项目。它只是使编译变得容易得多。没有构建脚本混乱以及拥有大量源文件的任何其他内容。
于 2009-02-18T01:26:22.173 回答
4
这样做是为了更简单地整合到现有项目中。将一个 .h 和一个 .c 添加到您的项目中,您就拥有了完整的 SQLite 引擎。
我很感激。这是我需要担心的一件事。
于 2009-02-18T01:22:35.630 回答
0
当我尝试使用 dev c++ 编译器将合并文件分配给 windows 下的单个文件时,我遇到了很多问题。因为我想让 sqlite 在名为 DJYOS 的 RTOS 中工作,所以从单个文件更改代码比从合并文件更改代码更容易。
于 2013-03-28T12:51:46.513 回答