iOS-性能优化4

UITableView性能优化技巧

Table view需要有很好的滚动性能,不然用户会在滚动过程中发现动画的瑕疵。

为了保证table view平滑滚动,确保你采取了以下的措施:

  • 正确使用`reuseIdentifier`来重用cells
  • 尽量使所有的view opaque,包括cell自身
  • 避免渐变,图片缩放,后台选人
  • 缓存行高
  • 如果cell内现实的内容来自web,使用异步加载,缓存请求结果
  • 使用`shadowPath`来画阴影
  • 减少subviews的数量
  • 尽量不适用`cellForRowAtIndexPath:`,如果你需要用到它,只用一次然后缓存结果
  • 使用正确的数据结构来存储数据
  • 使用`rowHeight`, `sectionFooterHeight` 和 `sectionHeaderHeight`来设定固定的高,不要请求delegate
  • 1.最常用的就是cell的重用, 注册重用标识符

如果不重用cell时,每当一个cell显示到屏幕上时,就会重新创建一个新的cell

如果有很多数据的时候,就会堆积很多cell。如果重用cell,为cell创建一个ID

每当需要显示cell 的时候,都会先去缓冲池中寻找可循环利用的cell,如果没有再重新创建cell

2.避免cell的重新布局

cell的布局填充等操作 比较耗时,一般创建时就布局好

如可以将cell单独放到一个自定义类,初始化时就布局好

3.提前计算并缓存cell的属性及内容

当我们创建cell的数据源方法时,编译器并不是先创建cell 再定cell的高度

而是先根据内容一次确定每一个cell的高度,高度确定后,再创建要显示的cell,滚动时,每当cell进入凭虚都会计算高度,提前估算高度告诉编译器,编译器知道高度后,紧接着就会创建cell,这时再调用高度的具体计算方法,这样可以方式浪费时间去计算显示以外的cell

4.减少cell中控件的数量

尽量使cell得布局大致相同,不同风格的cell可以使用不用的重用标识符,初始化时添加控件,

不适用的可以先隐藏

5.不要使用ClearColor,无背景色,透明度也不要设置为0

渲染耗时比较长

6.使用局部更新

如果只是更新某组的话,使用reloadSection进行局部更新

7.加载网络数据,下载图片,使用异步加载,并缓存

8.少使用addView 给cell动态添加view

9.按需加载cell,cell滚动很快时,只加载范围内的cell

10.不要实现无用的代理方法,tableView只遵守两个协议

时间: 2024-10-12 23:20:58

iOS-性能优化4的相关文章

iOS性能优化:Instruments使用实战

iOS性能优化:Instruments使用实战 最近采用Instruments 来分析整个应用程序的性能.发现很多有意思的点,以及性能优化和一些分析性能消耗的技巧,小结如下. Instruments使用技巧 关于Instruments官方有一个很有用的用户使用Guide,当然如果不习惯官方英文可以在这里找到中文本翻译版本PDF参阅.Instruments 确实是一个很强大的工具,用它来收集关于一个或多个系统进程的性能和行为的数据极为方便,并能及时跟踪随着时间产生的数据.还可以广泛收集不同类型的数

iOS性能优化小结

iOS性能优化分析 首先要熟悉几个概念 PNG 和 JPG 的区别是什么? png格式的图片有alpha通道,jpeg则没有.png无损压缩,jpeg允许你选择0-100%的压缩质量.如果需要alpha通道(透明),就只能用png格式. CPU 和 GPU 如果想看看两者的区别,先得了解iOS视图背后的层级结构原理  上图中的最底下一行是硬件层,由GPU和CPU组成. 我们经常说到的硬件加速其实是指OpenGL,Core Animation/UIKit基于GPU之上对计算机图形合成以及绘制的实现

IOS 性能优化的建议和技巧

IOS 性能优化的建议和技巧 本文来自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程序员.这是他的个人网站:http://www.marcelofabri.com/,你还可以在Twitter上关注@marcelofabri_. 性能对 iOS 应用的开发尤其重要,如果你的应用失去反应或者很慢,失望的用户会把他们的失望写满App Store的评论.然而由于iOS设备的限制,有时搞好性能是一件难事.开发过程中你会有很多需要注意的事项,你也很容易

【腾讯Bugly干货分享】微信读书iOS性能优化

本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/578c93ca9644bd524bfcabe8 "8小时内拼工作,8小时外拼成长"这是大家共同的理想.除了每天忙于工作外,我们都希望能更多地区吸收领域内的新知识与新技能,从而走向人生巅峰. Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员都是经过审核的移动开发工程师.每周都会举行嘉宾分享,话题讨论等活动. 上一期我们邀请了腾讯SNG工程师&qu

iOS性能优化技巧

iOS性能优化技巧 通过静态 Analyze 工具,以及运行时 Profile 工具分析性能瓶颈,并进行性能优化.结合本人在开发中遇到的问题,可以从以下几个方面进行性能优化. 一.view优化 1.不透明的View 设置为opaque. 2.根据实际情况重用.延迟加载或预加载View. 3.减少subviews数量,定制复杂cell使用drawRect.尽量使用drawRect而不是layoutSubView. 4.不直接调用drawRect. layoutSubviews方法.万不得已时可以用

iOS性能优化之“优化总体原则”(性能优化很重要,为什么你们都没有用?)

笔者由于在iOS开发过程中做过一些优化的工作,对iOS性能优化有一些粗浅的认识,一直想把自己这些经验,简单总结一下. 作为整个系列的第一篇,我打算针对iOS的优化中的一些总体原则做一些总结.因为我觉得无论列表流畅度优化也好.启动时间优化也好还是说其他方面的优化,都有一些共性的原则,只有掌握了这些总体性的原则,才能够更好的做优化,给我们具体的优化任务指明方向,让我们少绕弯路.后面如果时间允许,我可能会写一些关于列表流畅度.启动时间和内存优化等方面的文章. 作为一个开发者,有一个学习的氛围跟一个交流

iOS性能优化之Leaks动态分析

iOS性能优化之Leaks动态分析 Instruments-Leaks有很多跟踪模块可以动态分析和跟踪内存, CPU 和文件系统(因为是动态分析 所以必须运行才能打开). 具体使用 在XCode Open菜单下,点击Leaks 对App进行动态分析(快捷键CMD + i) 或者直接在工程中选择调试导航 在右侧点击Profile in instruments 检测图: Separate by Thread:按线程分开做分析,这样更容易揪出那些吃资源的问题线程.特别是对于主线程,它要处理和渲染所有的

iOS 性能优化收集

iOS 性能调试 instrument Instrument Instrument之Core Animation工具 避免图层混合 ①.确保控件的opaque属性设置为true,确保backgroundColor和父视图颜色一致且不透明: ②.如无特殊需要,不要设置低于1的alpha值: ③.确保UIImage没有alpha通道: 避免临时转换 ①.确保图片大小和frame一致,不要在滑动时缩放图片: ②.确保图片颜色格式被GPU支持,避免劳烦CPU转换: 慎用离屏渲染 ①.绝大多数时候离屏渲染

iOS性能优化:Instruments使用实战(转)

采用Instruments 来分析整个应用程序的性能.发现很多有意思的点,以及性能优化和一些分析性能消耗的技巧,小结如下. Instruments使用技巧 关于Instruments官方有一个很有用的用户使用Guide,当然如果不习惯官方英文可以在这里找到中文本翻译版本PDF参阅.Instruments 确实是一个很强大的工具,用它来收集关于一个或多个系统进程的性能和行为的数据极为方便,并能及时跟踪随着时间产生的数据.还可以广泛收集不同类型的数据.关于Instrument工具基本使用不在赘述.如

<转>iOS性能优化:Instruments使用实战

最近采用Instruments 来分析整个应用程序的性能.发现很多有意思的点,以及性能优化和一些分析性能消耗的技巧,小结如下. Instruments使用技巧 关于Instruments官方有一个很有用的用户使用Guide,当然如果不习惯官方英文可以在这里找到中文本翻译版本PDF参阅.Instruments 确实是一个很强大的工具,用它来收集关于一个或多个系统进程的性能和行为的数据极为方便,并能及时跟踪随着时间产生的数据.还可以广泛收集不同类型的数据.关于Instrument工具基本使用不在赘述