rendimiento mejorar lento esta acelerar objective-c ios performance app-startup

objective-c - mejorar - mi iphone 6 esta lento ios 12



¿Método canónico de medir el rendimiento de inicio de la aplicación iOS? (2)

Me han pedido que reduzca el tiempo de inicio de una aplicación iOS. Estoy muy familiarizado con la plataforma / herramientas en general, pero no me he centrado en el tiempo de inicio de la aplicación. Me pregunto si existen patrones conocidos para atacar este problema.

Me doy cuenta de que simplemente puedo medir el tiempo que se tarda en ir desde main () hasta la finalización de la application:didFinishLaunchingWithOptions: (que incluye cualquier tarea de carga de fondo), pero nuevamente, espero que pueda haber una forma más estandarizada de hacer esto .

Cualquier sugerencia sería muy apreciada!

-METRO


Su método suena como el correcto (recomiendo usar CFAbsoluteTime para sus mediciones).

Una cosa que puede ayudarle a reducir el tiempo de inicio es evitar que los controladores de vista se carguen desde las puntas al iniciar la aplicación. Si no me equivoco, esto obliga a que se carguen en la memoria incluso antes de que se inicie la aplicación. En su lugar, asigne e inicie sus controladores de vista dinámicamente cuando los necesite. Tenga en cuenta que aún puede tener las Vistas que le gustaría que los controladores de vista almacenen en Nibs, no tiene que dejar de usar IB. Simplemente no use IB para establecer salidas estáticas para su delegado de aplicación.


de WWDC 2012 sesión 235

establezca el punto de inicio en la primera línea de código en main.m

#import <UIKit/UIKit.h> CFAbsoluteTime StartTime; int main(int argc, char *argv[]) { StartTime = CFAbsoluteTimeGetCurrent(); @autoreleasepool { ...

establezca el punto final en algún lugar de la application:didFinishLaunchingWithOptions: AppDelegate application:didFinishLaunchingWithOptions:

extern CFAbsoluteTime StartTime; ... dispatch_async(dispatch_get_main_queue(), ^{ NSLog(@"Launched in %f sec", CFAbsoluteTimeGetCurrent() - StartTime); });