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

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


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

 20. 选择正确的数据存储选项(NSUserDefaults 存储小数据,大数据用 SQLite 和 CoreData)

 21. 正确选择加载图片的方法(imageWithNamed:会把图片加载的内存中,imageWithContentsOfFile:则不会加载到内存中)


未完待续。。。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值