美文网首页
iOS性能优化

iOS性能优化

作者: fcf7850dd33e | 来源:发表于2019-09-27 10:20 被阅读0次

1、参考文章    TableView优化       FPS监测

//启动优化、内存优化、卡顿优化、线程优化、电量优化、包体积优化

//数据缓存、多线程、tableview 高度缓存、异步绘制、离屏渲染、重用机制、少用xib、

2、卡顿监控:FPS监控

性能问题的解决方法:

1、优化业务流程

2、合理的线程分配 

 3、预处理和延时加载 

预处理:是将初次显示需要耗费大量线程时间的操作,提前放到后台线程进行计算,再将结果数据拿来显示。

延时加载:是指首先加载当前必须的可视内容,在稍后一段时间内或特定事件时,再触发其他内容的加载。这种方式可以很有效的提升界面绘制速度,使体验更加流畅。(UITableView 就是最典型的例子)

4、缓存

5、使用正确的API

tableView:

提前计算好cell的高度,缓存在相应的数据源模型中

尽可能的降低storyboard,xib等使用度

滑动过程中尽量减少重新布局

不要阻塞主线程

TableViewCell 复用

在cellForRowAtIndexPath:回调的时候只创建实例,快速返回cell,不绑定数据。在willDisplayCell: forRowAtIndexPath:的时候绑定数据(赋值)。

视图层级优化:  减少subviews个数,用layer绘制元素。少用 clearColor,maskToBounds,阴影效果等。善用hidden.

减少透明 view

减少离屏渲染

离屏渲染的优化建议

(1) 使用ShadowPath指定layer阴影效果路径。

(2)使用异步进行layer渲染(Facebook开源的异步绘制框架AsyncDisplayKit)。

(3)设置layer的opaque值为YES,减少复杂图层合成。

(4)尽量使用不包含透明(alpha)通道的图片资源。

(5)尽量设置layer的大小值为整形值。

(6)直接让美工把图片切成圆角进行显示,这是效率最高的一种方案。

(7)很多情况下用户上传图片进行显示,可以在客户端处理圆角。

(8)使用代码手动生成圆角image设置到要显示的View上,利用UIBezierPath(Core Graphics框架)画出来圆角图片。

按需加载

1、局部刷新,刷新一个cell就能解决的,坚决不刷新整个 section或者整个tableView,刷新最小单元元素。

2、利用runloop提高滑动流畅性,在滑动停止的时候再加载内容,像那种一闪而过的(快速滑动),就没有必要加载,可以使用默认的占位符填充内容。

相关文章

网友评论

      本文标题:iOS性能优化

      本文链接:https://www.haomeiwen.com/subject/mgrwuctx.html