找出用于构建SQLite的编译选项的方法

cat*_*lan 9 sqlite iphone cocoa cocoa-touch

在我的性能测试期间,我发现Apple在iPhone 3.0上提供的SQLite版本明显快于我自编的合并SQLite版本.所以我的问题是,有没有办法找出Apple使用的编译选项?

是否有测试应用程序打印出所有默认设置的pragams和sqlite3_config设置?

Var*_*ats 11

您可以使用compile_options pragma(或链接文档中提到的相关函数)来查看构建SQLite时使用的编译时选项.但是,这个pragma(以及相关函数)的可用性似乎取决于它是否在编译时启用.SQLite文档说:

通过在编译时指定SQLITE_OMIT_COMPILEOPTION_DIAGS选项,可以省略对sqlite3_compileoption_used()和sqlite3_compileoption_get()的诊断功能的支持.

因此,您的发行版可能在编译时未启用此功能,这意味着您可能无法查看选项.


cat*_*lan 1

看起来 pragma 设置中唯一的不同是 cache_size,默认为 2000,但在 iPhone 上为 500。

在某些系统上,可以使用以下命令读取编译器设置: objdump --full-contents --section .GCC.command.line