2009-09-25 9 views
6

C'è qualche articolo disponibile online dove posso trovare alcuni suggerimenti su come migliorare le prestazioni dell'applicazione iPhone. Ho letto i documenti Apple su Gestione memoria e cicli CPU, ma non sono molto utili.Impostazioni di generazione XCode per le prestazioni - app per iPhone

Inoltre qualcuno può suggerire alcune impostazioni XCode che potrebbero migliorare le prestazioni dell'applicazione (versione di rilascio)?

Grazie Brocche

+0

Dove stai assistendo a un successo in termini di prestazioni? – pzearfoss

risposta

8

corto di misurazione e ottimizzazione, livello di ottimizzazione del compilatore è solo l'unica cosa che avrà un impatto le prestazioni della vostra applicazione. In genere, desideri un livello di ottimizzazione di -Os; cioè, codice ottimizzato, ma ottimizzato anche per le dimensioni. Poiché la memoria dell'iPhone è limitata, è utile ridurre la dimensione del codice.

Oltre a ciò, è necessario misurare le prestazioni dell'applicazione e reagire di conseguenza. Ci sono molti strumenti in Strumenti e altro per aiutarti in questo compito. Gli strumenti sono davvero dannatamente belli, una volta che li capisci.

Dato che in realtà non hai ancora misurato nulla (che è buono - fallo funzionare, fallo bene, fallo velocemente), potrebbe esserci poca frutta sospesa. Riesci a ridisegnare qualcosa troppo spesso? Hai attivato un evento temporizzato automatico troppo veloce? ecc. Semplicemente non cadere nella trappola dell'ottimizzazione prematura; la necessità di misurare la reazione & è fondamentale per l'ottimizzazione riuscita.

Si noti inoltre che è possibile eseguire l'ottimizzazione a grana grossa tramite il simulatore, ma è davvero necessario eseguire l'analisi sull'app in esecuzione sul dispositivo per eseguire l'ottimizzazione dell'ottimizzazione finale.


(1) Sembra che la query del database sia molto lenta. Non conoscendo lo schema, ecc., È difficile sapere se è davvero così.

(2) Quando si esegue l'analisi delle prestazioni e il tempo viene utilizzato da una funzione in una libreria sconosciuta, cercare lo stack e vedere cosa sta chiamando quella libreria per capire perché l'app sta attivando il rallentamento delle prestazioni.

+0

Grazie per i vostri commenti! La mia applicazione è fondamentalmente un'applicazione UIKit che chiede ai giocatori alcune domande e ne scoprirà la compatibilità. Quindi ha diversi controlli dell'interfaccia utente come UIButtons, UIPickerControl, UITextView, ecc. Quando l'utente seleziona un pulsante, ci vuole fino a 2-3 secondi perché l'app risponda anche se sta recuperando una nuova domanda dal db che non prenditi molto tempo Ho provato vari strumenti come Shark e Instruments e ho trovato dove sono sprecati i cicli della CPU e sono tutti in una libreria sconosciuta. Grazie – Jugs

2

Fondamentalmente, che cosa ha detto bbum. Ottieni dati reali e vai da lì. Detto questo, ci sono un paio di compilazione bandiere che possono avere effetti sostanziali:

  • assicurarsi che non sta compilando in -O0. Come notato da bbum, -Os è probabilmente quello che vuoi.
  • Se si sta eseguendo molto calcolo a virgola mobile, assicurarsi che "Compile for Thumb" (-mthumb) non sia impostato durante la creazione di ARMv6. Le istruzioni del pollice impostate su ARMv6 non hanno istruzioni a virgola mobile, quindi si ottiene uno spessore per ogni operazione a virgola mobile che si utilizza. Spesso questo è compensato dal risparmio delle dimensioni del codice, ma se si dispone di un sacco di virgola mobile può essere un rischio di prestazioni. Tieni presente che puoi creare parte del tuo progetto per pollice e parte con esso disattivato. Si noti inoltre che l'istruzione thumb2 impostata su ARMv7 supporta la virgola mobile.
+0

Che cos'è -O0? Google non mostra nulla – quantumpotato

2

Il modo migliore per migliorare le prestazioni dell'iPhone è migliorare le prestazioni delle app, e non solo tramite le ottimizzazioni del compilatore, ma attraverso algoritmi migliori.

Generalmente le ottimizzazioni del compilatore possono migliorare le prestazioni di alcune percentuali a una o due cifre. L'ottimizzazione del codice utilizzando algoritmi, caching, re-architecting, ecc. Migliori potrebbe avere un miglioramento percentuale di tre cifre.

Non ho mai trovato un'impostazione del compilatore che migliori notevolmente le prestazioni della mia app. Le tue miglia possono variare.

Problemi correlati