【Swift】公司项目性能优化(一)
随着项目开发接近了尾声,改Bug和性能优化成了工作的重中之重,移动端开发,最注重用户体验,一个丝滑般的应用程序能在用户心里加很多印象分。
1、优化列表的滑动速度
作为内容创作类的app,里面包含了大量的写作、画作、小说、动态等多种动态高度的样式;列表滑动不卡顿,就成了用户体验的关键问题。
1)Autolayout自动布局比直接计算frame消耗更多的CPU资源,所以在确定内容位置、宽高情况下最好使用frame。
2)使用线程来处理文本、尺寸计算、图片处理等;避免卡顿主线程;
3)对于动态高度的cell,最好能提前计算好,缓存到数据模型中,减少计算高度所浪费的时间;
4)滑动过程中避免重布局。
2、减少离屏渲染的使用
圆角、阴影、都会触发GPU的离屏渲染,开辟新的屏幕缓冲区,渲染之后,重新切换到当前,这中间需要经过多次上下文环境的切换,只会浪费更多的GPU资源。
3、网络优化
1)减少不必要的API请求次数,对于能本地能直接操作的,就不要去增加额外的请求次数;
如:评论动态、回复评论、发布动态等,这些内容都是本地可直接知道的数据,就无需再评论之后,重新拉取列表数据,再进行reload。
2)尽量减少视图数量和层次;
对于可复用的view,很多开发者习惯抽取更多view,进行组合套装,这样就增加了,view视图的深度。
4、安装包瘦身
1)减少无用的资源(如:图片、代码等)
2)编译器优化、Strip Linked Product、Make Strings Read-Only、Symbols Hidden by Default设置为YES
去掉异常支持,Enable C++ Exceptions、Enable Objective-C Exceptions设置为NO,Other C Flags添加-fno-exceptions