iOSAPP应用启动时间查看 Pre-main时间查看

可以在Scheme 中添加环境变量DYLD_PRINT_STATISTICS

DE35C95D-A2A3-4F35-976A-FDE235775A83.png
WWDC 2016 Session 406优化应用程序启动时间详细介绍了每个步骤以及改进时间的提示,以下是简要的总结说明:
  • dylib loading time 动态加载程序查找并读取应用程序使用的依赖动态库。每个库本身都可能有依赖项。虽然苹果系统框架的加载是高度优化的,但加载嵌入式框架可能会很耗时。为了加快动态库的加载速度,苹果建议您使用更少的动态库,或者考虑合并它们。

建议的目标是六个额外的(非系统)框架。

  • Rebase/binding time 修正调整镜像内的指针(重新调整)和设置指向镜像外符号的指针(绑定)。为了加快重新定位/绑定时间,我们需要更少的指针修复。
    如果有大量(大的是20000)Objective-C类、选择器和类别的应用程序可以增加800ms的启动时间。
    如果应用程序使用C++代码,那么使用更少的虚拟函数。
    使用Swift结构体通常也更快。

  • ObjC setup time Objective-C运行时需要进行设置类、类别和选择器注册。我们对重新定位绑定时间所做的任何改进也将优化这个设置时间。
    initializer time 运行初始化程序。如果使用了Objective-C的 +load 方法,请将其替换为 +initialize 方法。

你可能感兴趣的:(iOSAPP应用启动时间查看 Pre-main时间查看)