测量iPhone应用程序加载时间

时间:2009-07-14 21:29:34

标签: iphone optimization

我正在以非常短的加载时间优化iPhone应用程序,我想知道:

从用户点击图标到应用程序可用时间(或者至少调用-viewDidLoad)时,是否有测量iPhone应用程序加载时间的方法?

理想情况下,这可以在设备和模拟器中运行,但是如果有人找到了一种方法来在模拟器中专门测量这个时间,这至少是一个起点。

不; “秒表”或“一个密西西比河,两个密西西比河”不计算在内。 : - )

3 个答案:

答案 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秒才能启动应用程序。