Mi è stato chiesto di ridurre il tempo di avvio di un'applicazione iOS. Conosco molto bene la piattaforma/gli strumenti in generale, ma non mi sono concentrato sui tempi di avvio delle applicazioni precedenti. Mi chiedo se ci sono modelli noti per attaccare questo problema?Metodo canonico per misurare le prestazioni di avvio dell'app iOS?
Mi rendo conto che posso semplicemente misurare il tempo necessario per passare da main() al completamento di application:didFinishLaunchingWithOptions:
(che include qualsiasi attività di caricamento in background), ma ancora una volta, spero che ci possa essere un modo più standardizzato di fare Questo.
Qualsiasi suggerimento sarebbe molto apprezzato!
-M
Perché sarebbe hai 'dispatch_async' quello? Si tratterà della misurazione della temporizzazione poiché si fa la coda nel ciclo di esecuzione successivo. Probabilmente non è una grande differenza, ma sembra una fonte di inesattezza completamente inutile. –
@jshier 'dispatch_async' viene utilizzato in modo che il log venga stampato quando l'utente può effettivamente interagire con l'app. La coda principale è bloccata in 'application: didFinishLaunchingWithOptions', e vogliamo sapere quando il thread principale è effettivamente finito con tutto il suo lavoro. – bclymer
Questo è un po 'scomodo, 'applicazione: didFinishLaunchingWithOptions' è sul thread principale, quindi perché è necessario inviare nuovamente il thread principale? Penso che fermare il timer sul primo 'viewDidAppear' potrebbe essere un po 'più ragionevole, ma non ho visto la sessione, potrebbe mancare qualcosa. – Zorayr