2009-05-19 14 views
7

Durante i miei test delle prestazioni ho scoperto la versione SQLite che Apple fornisce su iPhone 3.0 è significativamente più veloce della mia versione SQLite di compilazione automatica. Quindi la mia domanda è, c'è un modo per scoprire quali opzioni di compilazione Apple ha usato?Modo per scoprire quali Opzioni di compilazione sono state utilizzate per compilare SQLite

Esiste un'app di test che stampa tutte le impostazioni predefinite di default e l'impostazione sqlite3_config?

risposta

1

Sembra che l'unica diversa nelle impostazioni pragma è il cache_size che è di default 2000, ma su iPhone che è 500.

Su alcuni sistemi è possibile ottenere leggere l'impostazione con questo compilatore: objdump - -full-contents --section .GCC.command.line

2

Non c'è modo di chiedere a libsqlite la sua esatta configurazione per provare tutte le possibili permutazioni e testare ciascuna per vedere quale si comporta allo stesso modo (a meno che Apple non abbia apportato modifiche personalizzate). Il meglio che si può ottenere per chiamare sqlite3_libversion che restituisce il numero di versione di sqlite.

6

È possibile utilizzare il pragma compile_options (o le funzioni correlate come menzionato nella documentazione collegata) per visualizzare le opzioni di compilazione utilizzate durante la creazione di SQLite. Tuttavia, la disponibilità di questo pragma (e delle relative funzioni) sembra dipendere dal fatto che sia stato abilitato in fase di compilazione o meno. La documentazione SQLite dice:

supporto per le funzioni di diagnostica sqlite3_compileoption_used() e sqlite3_compileoption_get() può essere omesso specificando l'opzione SQLITE_OMIT_COMPILEOPTION_DIAGS in fase di compilazione.

Quindi è probabile che la tua distribuzione non abbia abilitato questa funzione in fase di compilazione, il che significa che potresti non essere in grado di visualizzare le opzioni.

Problemi correlati