iOS:App启动优化知多少

App启动总时间 = main函数调用之前加载的时间 + main函数调用之后的加载的时间

main函数之前的优化:

减少动态库的使用,不要链接用不到的库(包括系统的),都会导致加载时间变长。

避免对系统库使用 optional linking,如果用的库所有版本上都有,设置为require,optional会有额外的检查。

减少oc 类、selector、分类的数量,合并或删减一些oc类。

删除无用代码,无用代码最终会导致可执行性文件体积增加,最终导致dyld耗时增加,即增加了启动时间。

将不必须放在+load方法中的事情放到+initialize,因为+load加载类时就会被调用,+initialize第一次初始化时才会被调用。

尽量不使用c++虚函数,创建虚函数表有开销。

main函数之后的优化:

梳理用到的第三方库,找到可以延迟加载的库,延迟加载,比如放到首页控制器或者用到相关功能的时候再加载。

梳理业务逻辑,把可以延迟的逻辑,做延迟处理,比如检查版本号、注册推送通知等逻辑。
复杂的计算放到子线程中处理,比如mode解析等。

避免在首页viewDidLoad和viewWillppear方法中做太多事情,可以延迟创建的视图延迟创建货使用懒加载。

首页控制器UI使用纯代码构建,xib/storyboard创建的页面第一次加载用时一般比纯代码多。

NSUserDefaults内不要存放太多数据。

减少log打印。

检测时间工具

使用Instrument 下Time Profiler可以检测app使用时间。

获得 main() 方法执行前的耗时比较简单,通过 Xcode 自带的测量方法既可以。

将 Xcode 中 Product -> Scheme -> Edit scheme -> Run -> Environment Variables 将环境变量 DYLD_PRINT_STATISTICS 或 DYLD_PRINT_STATISTICS_DETAILS 设为 1 即可获得执行每项耗时。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容