我正在以非常短的加载时间优化iPhone应用程序,我想知道:
从用户点击图标到应用程序可用时间(或者至少调用-viewDidLoad)时,是否有测量iPhone应用程序加载时间的方法?
理想情况下,这可以在设备和模拟器中运行,但是如果有人找到了一种方法来在模拟器中专门测量这个时间,这至少是一个起点。
不; “秒表”或“一个密西西比河,两个密西西比河”不计算在内。 : - )
答案 0 :(得分:2)
在App Delegate的init方法中启动一个计时器,然后在viewDidAppear时停止: -
启动计时器: -
NSDate *startTime = [NSDate date];
...并以: -
结束NSTimeInterval elapsedTime = [startTime timeIntervalSinceNow];
NSLog(@"Startup tasks: %f", -elapsedTime);
这不会从点击图标的那一刻开始,但应该在你的工作中相当早。您可以在调试器控制台中输出的日志中查看较早的时间吗?
答案 1 :(得分:2)
作为WWDC 2016的一部分,Apple宣布了一个新的环境变量,作为beta 2的一部分提供,它将帮助您记录应用程序的启动时间。
上述答案的一个问题是,它们没有考虑预加载时间,加载图像并进行rebase和绑定修复。
如果添加变量
DYLD_PRINT_STATISTICS = 1
您将获得在控制台中打印的预主时间。
来自WWDC 2016的会话406涉及此变量用法以及如何解释结果。
答案 2 :(得分:1)
将NSLog(@"started loading");
放在applicationDidFinishLauching的开头,将NSLog(@"finished loading");
放在app delegate的viewDidAppear中。在调试器控制台中,您可以获得类似
2010-11-21 17:16:06.278 Phy[9157:207] started loading
2010-11-21 17:16:06.301 Phy[9157:207] finished loading
因此,模拟器需要0.03秒才能启动应用程序。