2009-05-19 38 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選項被省略。

所以很可能您的發行版在編譯時未啓用此功能,這意味着您可能無法查看選項。

相關問題