0

当我试图优化应用程序的启动时间时,我发现一个有趣的事实,即 iPhone 6s 所需的 pre-main 时间实际上比 iPhone 6 plus(热启动)要长得多。

在 iPhone 6 plus 上,它看起来像这样:

Total pre-main time: 241.93 milliseconds (100.0%)
     dylib loading time:  74.81 milliseconds (30.9%)
    rebase/binding time:  15.96 milliseconds (6.6%)
        ObjC setup time:  23.67 milliseconds (9.7%)
       initializer time: 127.31 milliseconds (52.6%)
       slowest intializers :
         libSystem.B.dylib :   7.21 milliseconds (2.9%)
libBacktraceRecording.dylib :   5.97 milliseconds (2.4%)
                AirshipKit :   5.17 milliseconds (2.1%)
               My App : 199.60 milliseconds (82.5%)

然而,在 iPhone 6s 上,它的时间增加了两倍:

Total pre-main time: 891.80 milliseconds (100.0%)
     dylib loading time: 680.36 milliseconds (76.2%)
    rebase/binding time:  59.18 milliseconds (6.6%)
        ObjC setup time:  42.74 milliseconds (4.7%)
       initializer time: 109.43 milliseconds (12.2%)
       slowest intializers :
         libSystem.B.dylib :   7.36 milliseconds (0.8%)
               My App : 147.96 milliseconds (16.5%)

它们都在同一系统上运行(iOS 10.3)。我认为 iPhone 6s 比 6 plus 拥有更大的内存和更好的 CPU。但我不明白为什么实际上需要更长的时间才能完成 pre-main 任务。

谁能给我一些提示?谢谢!

PS:我确实尝试了几次。

4

0 回答 0