主要分为两个阶段
- pre-main阶段的定义为APP开始启动到系统调用main函数这一段时间;
- 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));
});
网友评论