衡量iOS应用启动性能的典型方法?

时间:2011-09-17 14:29:19

标签: objective-c ios performance app-startup

我被要求缩短iOS应用程序的启动时间。我对平台/工具一般非常熟悉,但我之前没有专注于应用程序启动时间。我想知道是否有已知的模式来攻击这个问题?

我意识到我可以简单地测量从main()到完成application:didFinishLaunchingWithOptions:(包括任何后台加载任务)所需的时间,但同样,我希望可能有更标准化的这样做的方法。

任何建议都将不胜感激!

-M

2 个答案:

答案 0 :(得分:14)

来自WWDC 2012会议235

main.m

的第一行代码处设置起点
#import <UIKit/UIKit.h>

CFAbsoluteTime StartTime;

int main(int argc, char *argv[])
{
    StartTime = CFAbsoluteTimeGetCurrent();

    @autoreleasepool {
        ...

将结束点设置在AppDelegate的{​​{1}}

application:didFinishLaunchingWithOptions:

答案 1 :(得分:1)

您的方法听起来是正确的(我建议您使用CFAbsoluteTime进行测量)。

可以帮助您减少启动时间的一件事是避免在应用程序启动时从nib加载View Controllers。如果我没有弄错,这会迫使他们在应用程序启动之前加载到内存中。而是在需要时动态分配和初始化视图控制器。请注意,您仍然可以通过存储在Nib中的视图控制器加载视图,您不必停止使用IB。只是不要使用IB为您的应用代表设置静态插座。