iOS启动时间的优化

主要分为两个阶段

  1. pre-main阶段的定义为APP开始启动到系统调用main函数这一段时间;
  2. main之后 从main函数入口到主UI框架的viewDidAppear函数调用的这一段时间

1.pre-main的优化看下面的文章就够了

时间测试
1.Edit scheme -> Run -> Arguments 中将环境变量 DYLD_PRINT_STATISTICS 设为 1,就可以看到 main 之前各个阶段的时间消耗。
2.还有一个方法获取更详细的时间,只需将环境变量 DYLD_PRINT_STATISTICS_DETAILS 设为 1 就可以。

2.main之后的优化主要是使用多线程和将不需要的延缓初始化【比如投屏】

时间测试代码
CFAbsoluteTime StartTime;
int main(int argc, char * argv[]) {
StartTime = CFAbsoluteTimeGetCurrent();
然后在 AppDelegate.m 的开头声明

extern CFAbsoluteTime StartTime; 
最后在AppDelegate.m 的 didFinishLaunchingWithOptions 中添加

dispatch_async(dispatch_get_main_queue(), ^{
    NSLog(@"App启动时间--%f",(CFAbsoluteTimeGetCurrent()-StartTime));
});

如何精确度量 iOS App 的启动时间
iOS启动时间优化

你可能感兴趣的:(iOS启动时间的优化)