02 | App 启动速度怎么做优化与监控?
该思维导图由 AI 生成,仅供参考
App 启动时都干了些什么事儿?
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了优化iOS应用程序启动速度的方法,重点关注了冷启动阶段的优化策略。作者提出了一系列针对性的优化建议,包括减少动态库加载、控制C++全局变量的数量等方法来提升启动速度。此外,建议将非首屏业务的初始化、监听注册、配置文件读取等操作放到首屏渲染完成后进行,以避免影响首屏渲染速度。文章还强调了功能级别的启动优化,规范代码,避免功能堆积、无规范、难维护的问题。作者还提到了对启动方法耗时进行全面、精确检查的手段,包括定时抓取主线程上的方法调用堆栈和hook objc_msgSend方法。总的来说,本文通过深入分析App启动阶段的工作内容,提出了一些实用的优化建议,有助于开发者更好地优化iOS应用程序的启动速度。
《iOS 开发高手课》,新⼈⾸单¥59
全部留言(277)
- 最新
- 精选
- Glenn•D置顶模拟器上试了一下耗时检查没有效果
作者回复: 需要真机,arm64芯片,模拟器是 x86
2019-03-153 - 好多余先生丶置顶完了,上来就懵逼
作者回复: 可以从作业入手,学习不能着急,需要慢慢来,多重复就会有更多体会
2019-03-143117 - Neo置顶不错 提纲挈领 希望汇编那块能稍微细讲一下 没有太多写汇编的经验
作者回复: 汇编语言入门可以看阮一峰老师的《汇编语言入门教程》啊。链接是 http://www.ruanyifeng.com/blog/2018/01/assembly-language-primer.html 。以后可以考虑写个 iOS 视角的
2019-03-1428 - 西京富贵兔看完这篇我膨胀了,我都敢去点 objc_msgSend 源码文件了,嗯,不出意料,一句没看懂。。。
作者回复: 哈哈
2019-03-14233 - 星空友情提示:想要尝试SMCallTrace的朋友,需要在SMCallTrace.m中打开第54行的注释。
作者回复: 赞
2019-03-1430 - 嗨只有C和OC基础,学起来很吃力
作者回复: 想要一个东西就去买,喜欢一个人就去追,哪怕最后那个东西没有用,那个人没有跟你在一起,都没有关系,人生苦短,要知道遗憾要比失败可怕的多。
2019-03-14220 - 冰风落叶大佬们 这是我的写的总结和课后作业 不知道写的对不对 恳请各位大佬指正 总结:https://www.jianshu.com/p/f26c4f16692a 课后作业:https://github.com/308823810/BSMonitorTimeTool
作者回复: 赞
2019-04-04319 - 哈说swift没有main函数那位,其实swift是有main函数的,只不过苹果把它精简成了一个@NSApplicationMain了而已,不信去你的AppDelegate.swift最上面看!
作者回复: 赞
2019-03-1419 - Justin戴老师:多个动态库进行合并,具体怎么合并了,没弄过动态库合并该功能
作者回复: https://blog.automatic.com/how-we-cut-our-ios-apps-launch-time-in-half-with-this-one-cool-trick-7aca2011e2ea 了解下
2019-03-15517 - Kam这个方法耗时计算的工具很赞,白天要花点时间实践一下才行。 有个让我疑惑的地方是关于“热启动”的概念,我再去看了下 WWDC 上的说法,里面提到热启动应该也包括“启动后退出 App 再启动”这种情况,不知道我下面这段话的理解是否正确: “And a warm launch is an app where the application is already in memory, either because it's been launched and quit previously, and it's still sitting in the discache in the kernel, or because you just copied it over.” - https://developer.apple.com/videos/play/wwdc2016-406/?time=1484
作者回复: 官方的解释很全面,情况都说清楚了
2019-03-14214