Domanda

Ho sentito che potrebbe essere una buona idea per spegnere "compilare per pollice" nelle impostazioni di un target di iPhone per aumentare le prestazioni. Sto avendo qualche difficoltà a trovare questa impostazione però. Dal momento che non riuscivo a trovare nel mio progetto in corso, ho deciso di fare una nuova (in cui sono riuscito a trovare e impostarlo), e copiare i miei file su di esso (e anche aggiornare tutte le librerie che sto usando allo stesso tempo ).

Ma ora sembra che questa impostazione ha disapperad da questo nuovo progetto anche. Non importa quello che ho scelto SDK, simulatore o un dispositivo, l'impostazione non verrà visualizzato nelle impostazioni di destinazione! Mi sembrano però avere ancora una variabile chiamata GCC_THUMB_SUPPORT sotto la categoria "User-defined" all'improvviso. Che cosa è questo?

Ho provato a fare un nuovo obiettivo, ma l'impostazione non verrà visualizzato in che o (nemmeno GCC_THUMB_SUPPORT).

È stato utile?

Soluzione

GCC_THUMB_SUPPORT è la variabile a destra. Basta impostare su NO per disabilitare POLLICE generazione del codice.
Una regola generale è, per disattivarlo se il codice è fluttuante punto pesante :)
Di più su che qui .

Aggiornamento:
Il consiglio per compilare per l'istruzione POLLICE set non è più valido (in realtà in quanto l'iPhone 3GS).

Altri suggerimenti

Ho trovato che le impostazioni del compilatore ( "GCC 4.2 - Generazione di codice", "GCC 4.2 - lingua", ecc) visualizzati solo nelle informazioni di destinazione costruire impostazioni finestra quando l'SDK attivo è impostato su dispositivo - e la categoria "User-defined" mostra solo quando l'SDK attiva è Simulator.

E sì, disabilitando la compilazione del pollice può essere di grande aiuto per le prestazioni, se hai a che fare con un sacco di matematica in virgola mobile (ad esempio floating-point elaborazione audio). Anche se non è, ovviamente, una per tutti gli usi magici speed-up (e presumibilmente il codice Thumb-compilato può correre più veloce in alcune situazioni), per cui è probabile solo trovare la disabilitazione Thumb utile se il codice ha quel tipo di collo di bottiglia.

"Compila per Thumb" dovrebbe sotto Target / Ottieni informazioni / GCC 4.2 - Generazione di codice . Se non è lì (Sarei sorpreso se non è), impostare la variabile definita dall'utente.

Tenete a mente che questo migliora le prestazioni solo nell'ambito di una serie ristretta di circostanze che si dovrebbe capire prima di giocherellare con esso.

Il set di istruzioni standard per ARM è 4-byte. L'utilizzo di "compilare per pollice", il compilatore è in grado di utilizzare le istruzioni 2 byte. Questo si traduce in una libreria molto più piccolo, ma anche una più lenta (un po 'discutibile). Più critico, ci sono problemi con l'esecuzione in ARMv6. Nel nostro caso, non siamo riusciti a generare un output stabile da MonoTouch (correzione in MT4.0 alpha). In Xcode, è possibile trovare l'impostazione facendo clic sul vostro obiettivo, e guardando sotto Costruire e alla ricerca di "pollice". Il mio è sotto GCC 4.2 -. Generazione di codice, ma a volte è sotto LVVM GCC 4.2

Compila per pollice

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top