性能优化

2018-10-17  本文已影响0人  开心一刻_

UITableView:

  1. 图片圆角处理,防止离屏渲染
  2. 提前缓存高度

地图:

  1. 点太多会卡顿,点聚合

图片

  1. 充分利用cache,缓存一些不容易改变,但是经常访问的数据
    图片太大的话,可以分段加载。
  2. 可以设置位图规格可以减少内存大小
  3. 如果图片过大的时候,可以重置这些图片的大小,既能减小内存的开销,也能提高显示的效率。
  4. 设置图片位组件的大小,减小图片的分辨率,从而减小消耗的内存

策略:

压缩、增量、去重复

内存:

  1. 当有大量的临时图片或者是临时变量的时候,用@autoreleasepool进行释放。
  2. 资源性对象没有关闭(比如数据库对象)
  3. 观察者需要释放(观察者列表强持有着观察者对象)导致对象无法释放
  4. 酌情使用单利对象和静态对象
  5. 大的对象如果存储在集合中,如果集合对象不再需要了,就要即使释放,以免占用太多的内存。

内存log的使用:

  1. 写代码的时候在每个类的dealloc方法加上log,防止vc没有被释放。
  2. timer定时器也需要加上log。

控件:

  1. 懒加载,用到的时候才去加载

布局:

页面布局懒加载布局,按需加载布局,比方说登陆注册的view,不是一定都需要同时加载的。

数据:

  1. 耗时的非ui操作,需要开启自线程处理。

加载:

分布加载
延迟加载
异步加载

刷新优化:

减少刷新次数
缩小刷新区域
避免后台有高cpu线程运行

后台cpu开销过大:

如果后台cpu开销过大,会导致cpu的时间片紧张,也有可能导致页面卡顿。
比如:可以在页面滚动的时候,停止后台下载任务等。

地图页卡顿就是因为页面滚动的过程中在下载数据。cpu负担过重。

缩小刷新区域:

listview的单条更新。
或者只更新某个区域。传入区域的坐标点

动画性能提升:

  1. 帧动画
  2. 补间动画
  3. 属性动画

动画的性能从三个纬度来测量

  1. 流畅度:控制每一帧动画执行时间在16ms之内
  2. 避免内存泄漏,减少内存开销
  3. 减少耗电量,优化算法,减少cpu使用。

存储:

  1. 批量操作使用事务。
    好处:1)修改都完成或者什么都没做,不会产生部分提交都结果,保证数据的同步。
    2)显示创建事务可以缩短时间,不用每一次插入都创建事务提交事务。
  2. 使用索引
    类似于联系人的首字母查找

索引不适合应用的地方:

  1. 在较小的表上
  2. 在有频繁的大批量更新或插入操作的表上
  3. 含有大量null列的表上
  4. 在频繁操作的列上
  5. 放到异步线程处理数据库操作

电量优化:

数据传输过程中数据压缩。

集合

集合里面Array类型,最好使用<objectType>来做数组里面的类型指定,
那样可以省去装箱和拆箱的操作,可以优化很多性能。

NSMutableArray<Animal *> *array = [NSMutableArray alloc];
指定了数组中的元素是Animal类型的。
上一篇 下一篇

猜你喜欢

热点阅读