iOS性能优化

最近空窗期,有了angularJS的基础,学习了小程序没那么费事,闲来把以前的一个项目做了下性能优化,以下是做的处理

  • instruments
1、Time Profiler,查看程序哪些部分最耗时
2、Leaks,查看内存是否泄漏
3、Allocation,查看内存分配
4、Core Animation,打开Color Blended Layers,所有红的都是降低fps的敌人,能改则改(opaque设置为YES,给个背景颜色)

  • 不要阻塞主线程
请求数据等做耗时动作,放在子线程

  • cache

  • 减少程序启动过程中的任务

  • 使用合适的数据结构

  • 对数组、字典进行安全封装

  • 懒加载view

  • 尽量把views设置为不透明,设置它们的opaque属性为YES

  • 优化Table View

1.正确使用reuseIdentifier来重用cells
2.尽量使所有的view opaque,包括cell自身
3.避免渐变,图片缩放,后台选人
4.缓存行高
5.如果cell内现实的内容来自web,使用异步加载,缓存请求结果
6.使用shadowPath来画阴影
7.减少subviews的数量
8.尽量不使用cellForRowAtIndexPath,如果你需要用到它,只用一次然后缓存结果
9.使用正确的数据结构来存储数据
10.使用rowHeight, sectionFooterHeight和 sectionHeaderHeight来设定固定的高,不要请求delegate
  • 合理获取图片

1.imageNamed(会缓存),图片反复重用
2.imageWithContentsOfFile,加载一个大图片而且是一次性使用

  • 缓存cell的layer,优化tableView性能
    cell.layer.shouldRasterize = YES;
    cell.layer.rasterizationScale = [UIScreen mainScreen].scale;
 cell.layer.drawsAsynchronously = YES;

你可能感兴趣的:(iOS性能优化)