在我的性能測試過程中,我發現Apple提供的iPhone 3.0版本的SQLite版本顯着快於我自編譯的合併SQLite版本。所以我的問題是,有沒有辦法找出Apple使用哪些編譯選項?找出哪些編譯選項用於構建SQLite的方法
是否有一個測試應用程序,打印出所有默認的設置參數和sqlite3_config設置?
在我的性能測試過程中,我發現Apple提供的iPhone 3.0版本的SQLite版本顯着快於我自編譯的合併SQLite版本。所以我的問題是,有沒有辦法找出Apple使用哪些編譯選項?找出哪些編譯選項用於構建SQLite的方法
是否有一個測試應用程序,打印出所有默認的設置參數和sqlite3_config設置?
它看起來像編譯設置的唯一不同的是,這是默認的2000 CACHE_SIZE但在iPhone上是500
在一些系統上有可能獲得閱讀編譯器使用此設置: objdump的 - -full-contents --section .GCC.command.line
沒有辦法問libsqlite的確切配置,儘量不要嘗試所有可能的排列和測試,看看哪些行爲相同(除非Apple已經進行了自定義修改)。最好你可以打電話sqlite3_libversion
它返回sqlite的版本號。
您可以使用compile_options雜注(或鏈接文檔中提到的相關函數)來查看構建SQLite時使用的編譯時選項。但是,這個編譯指示(以及相關函數)的可用性似乎取決於它是否在編譯時啓用。 SQLite的文檔說:
爲()sqlite3_compileoption_used診斷功能和sqlite3_compileoption_get()支持可以通過指定在編譯時SQLITE_OMIT_COMPILEOPTION_DIAGS選項被省略。
所以很可能您的發行版在編譯時未啓用此功能,這意味着您可能無法查看選項。