包括优化流畅度、启动时间、编译时间、动态应急等几方面。
- 流畅度
可以通过异步图片解码、表视图动态高度预计算、对象销毁、复杂布局页面尽量不使用约束 -
启动时间
对首页数据进行缓存、尽量不使用xib、release版本控制log(NSLog会隐式创建一个calendar)、可以考虑使用background fetch预先请求数据、减少不必要的framework、删除或合并一些OC类、减少一些无用的静态变量。
App的启动流程:
877439-77c0062f78b28b87.png
APP的启动可以分为两个阶段,即main()执行之前和main()执行之后。总结如下:
t(App 总启动时间) =
t1
( main()之前的加载时间 ) +t2
( main()之后的加载时间 )。
t1
= 系统的 dylib (动态链接库)和 App 可执行文件的加载时间;
t2
= main()函数执行之后到AppDelegate类中的applicationDidFinishLaunching:withOptions:
方法执行结束前这段时间。
- 动态应急
比如线上某个页面有紧急bug,可以考虑将访问该页面的方式从原生动态修改为网页,或者直接显示某个错误页面,可以将控制器之间的跳转修改为路由模式,同时还会降低控制器之间的耦合性。
网友评论