性能优化

最具参考价值的属性是 FPS

方案:
尽量将控件的 opaque 属性设置为 YES;

简化 XIB 文件(XIB 文件是在主线程加载的,Storyboards 就没有这样的问题),使用代码来实现复杂的控件;

将耗时的流程放到后台线程执行;

在运行中缩放图片是很耗费资源的,特别是 UIImageView 嵌套在 UIScrollView 中的情况下。应在显示图片前调整好图片的大小以适应 UIImageView 的大小;

压缩网络请求的数据;

重用和延迟加载;

数据缓存和缓存 UITableView 的行高;

使用 UIColor 的 colorWithPatternImage 方法设置背景能更快的渲染,但会增加内存的使用;如果设置全屏的背景图,则使用 UIImageView,如果设置某个小 View 的背景图,则可以使用 colorWithPatternImage 方法;

尽量不使用 cellForRowAtIndex: 方法,如果需要使用,使用后缓存起来;

使用正确的数据结构,避免显示时需要过多的逻辑处理;

使用 rowHeight、sectionHeaderHeight 和 sectionFooterHeight 来设置固定高度,不要请求 delegate;

选择正确的数据持久化方案:XML 和 NSCoding 都需要读取整个文件到内存中;

临时对象过多时,使用 @autoreleasepool 管理内存;

使用时间戳来处理时间;

Analyze 静态分析工具和 Profile 运行时工具,使用 Analyze 和 Memory Leaks 监测内存泄漏;

UIImage 加载图片性能问题:imagedNamed 有缓存功能,imageWithContentsOfFile 则只加载图片,不缓存。

学习 Instruments 有助于理解计算机基础理论知识体系;

UIImageView 的圆角通过直接截取图片实现,其它视图的圆角可以通过 Core Graphics 画出来;

不用事件处理的地方,用 CALayer 取代 UIVew;

控制线程并发数量;

最大纹理尺寸尽量不要超过 4096 * 4096;

避免离屏渲染,调用 CALayer 的 border、corner、shadow、mask等技术都会触发离屏渲染:

小数据积累到一定数量之后再同步;

合并多个请求,将大数据批量传输;

后台定位时,尽量设置 pauseLocationUpdatesAutomatically 为 YES,用户不太可能移动时系统自动暂停位置更新;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值