您的位置:首页 > 移动开发 > IOS开发

笔记:ios性能优化(未完待续。。。)

2018-03-16 17:39 281 查看
最近在网上看了很多的内存优化方案,感觉都很 nice ,本文主要是对网上的内存优化方案做一下列表式总结,不涉及具体的内容(主要目的就是备忘):

用ARC管理内存(貌似现在的新项目99%用的都是ARC了)
在正确的地方使用 reuseIdentifier
尽可能使 View 不透明(View不透明的情况下 GPU在计算颜色的时候只需要计算本图层的颜色,如果 View 透明,则需要把下 面图层的颜色计算在内,当然会增加计算的任务量,降低性能了)
避免庞大的 XIB(在加载XIB的时候会将所有内容都放到内存中,大量 XIB 会导致内存的浪费)
不要阻塞主线程
在 imageView 中调整图片大小(在运行中缩放图片是很耗费性能的)
选择正确的 Collection (NSArray/NSMutableArray、NSDictionary/NSMutableDictionary、NSSet/NSMutableSet)
打开 gzip 压缩
重用和延迟加载
缓存需要缓存
权衡渲染方法
处理内存警告(当收到内存警告的时候清除不是必须的缓存以及一些图片、可以重建的对象等)
重用重大开销(比如 NSDateFormatter 和 NSCalendar。因为他们创建的很慢,可以把它们设置为属性)
避免反复处理数据(确保服务端和客服端使用相同的数据格式,避免数据转换带来的性能损耗)
选择正确的数据格式(XML 和 JSON,JSON 通常来说更小更便于传输,而 XML 在处理很大的数据时,不需要像 JSON 那样等到整个文档下载完成才开始解析,因此在处理很大的数据是会极大的减低内存消耗和增加性能)
正确设置背景图片(如果用全画幅的背景图,用 imageView,如果是小图平铺创建背景用 UIColor 的 colorWithPatternImage方法)
减少使用 Web 特性
用 shadowPath 添加阴影(view.layer.shadowPath = [[UIBezierPath bezierPathWithRect:view.bounds] CGPath];)
优化TableView
正确使用 reuseIdentifier 重用Cell
缓存行高
避免图片缩放,渐变等
使用 shadowPath 来画阴影
减少 subviews 的数量
正确的数据结构存储数据
尽量使用 rowHeight,sectionFooterHeight,sectionHeaderHeight 来设置行高,不要请求delegate
图文混排或者 Cell 比较复杂时用 drawRect 绘制
在 tableView 快速滑动的时候只加载目标行前后可见范围内的 Cell
 20. 选择正确的数据存储选项(NSUserDefaults 存储小数据,大数据用 SQLite 和 CoreData)
 21. 正确选择加载图片的方法(imageWithNamed:会把图片加载的内存中,imageWithContentsOfFile:则不会加载到内存中)

未完待续。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: