美文网首页
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