2009-05-19 72 views
7

在我的性能测试过程中,我发现Apple提供的iPhone 3.0版本的SQLite版本显着快于我自编译的合并SQLite版本。所以我的问题是,有没有办法找出Apple使用哪些编译选项?找出哪些编译选项用于构建SQLite的方法

是否有一个测试应用程序,打印出所有默认的设置参数和sqlite3_config设置?

回答

1

它看起来像编译设置的唯一不同的是,这是默认的2000 CACHE_SIZE但在iPhone上是500

在一些系统上有可能获得阅读编译器使用此设置: objdump的 - -full-contents --section .GCC.command.line

2

没有办法问libsqlite的确切配置,尽量不要尝试所有可能的排列和测试,看看哪些行为相同(除非Apple已经进行了自定义修改)。最好你可以打电话sqlite3_libversion它返回sqlite的版本号。

6

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

为()sqlite3_compileoption_used诊断功能和sqlite3_compileoption_get()

支持可以通过指定在编译时SQLITE_OMIT_COMPILEOPTION_DIAGS选项被省略。

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

相关问题