启动优化
#
SpringBoard 阶段这个阶段是iOS系统的SpringBoard启动App的阶段,App本身进程还未启动。
#
pre-main 阶段App自身进程中,main函数之前的阶段。
- 一种 hook objective c +load 的方法
- 一种 hook C++ static initializers 的方法
- 一种延迟 premain code 的方法
- iOS应用启动性能优化(1)-premain
- Hook所有+load方法(包括Category)
#
main 阶段main函数到didFinishLaunching,再到首页显示完成的阶段。
#
工具工具好了,分析起来就愉快了。
- AppleTrace 性能分析工具
- AppleTrace 搭配 MonkeyDev Trace任意App
- VSCode Extension Filter Line
- os_signpost API 尝鲜
- Instruments (TimeProfiler) 一直想写篇文章,但没写。网上很多,就不写了。
- dtrace 一直想写篇文章,但没写。可以参考这本书 Advanced Apple Debugging & Reverse Engineering
#
热启动这篇文章90%的内容是两年前我于阿里内网写的,在我离开蚂蚁后,mPaaS项目的同事整理发出(虽然没有我的署名😓)。其中最有价值的就是Background Fetch这一段。但这一段只是冰山一角,或者说是万里长征的第一步.
#
资料收集#
手册#
可探索- Profile-Guided Optimization (PGO)
- Improving Locality of Reference
这两点仅仅提下名字吧,如果要执行,还是很有意思的,可自行搜索。