• 即便要做1个地道的iOS app, 工程师的天职,
    正是尽恐怕的优化App的品质.
  • 本文绝抢先二分一内容来自Macelo
    Fabri的文章
    ,
    重新展开了组织.
  • 本文没有提Instruments,不过,它实际上是性质优化的前提。他正如易学中的诊断阶段,上面列出的都以临床的配方。

1. 内存

1.1 使用AKugaC管理内存

在多数气象下, 都应该使用AHighlanderC, 因为:

  • 选拔ARAV4C, 当你的靶子无须时, 系统会尽快的帮你举办release.
    M大切诺基C的话未必能保险.
  • 采纳A牧马人C, 能帮你收缩内存败露.

1.2 采纳合适的集纳

  • NSArray, NSet, NSDictionary, 适用场景区别, 谨慎采纳.

1.3 处理操作系统的内部存款和储蓄器警告

  • 实质上那个无法说是品质难题, 而是你的接纳在前台会挂掉,
    或然被系统从后台清理掉.

1.4 使用 Autorelease Pool

2. UI

2.1 尽量采纳 reuseIdentifier

  • 对于UITableView和UICollectionView中的Cell等, 使用reuseIdentifier,
    能够幸免每便都重复创立Cell.

2.2 尽恐怕设置Views 为 Opaque(不透明)

  • 假使你的View不是透明的, 那就显式的装置Opaque为YES,
    那样系统在绘制的时候, 就能够展开自然的优化. 就算设置起来很麻烦,
    不过尽大概多的安装吧.

2.3 幸免非常大的XIBs文件

  • 不畏你只利用了XIBs文件中的三个view, 系统在加载XIBs文书的时候,
    也会整整加载. 所以尽量保证各种XIBs文件中唯有贰个View.
    不过StoryBoard没有那一个标题, 假设要将八个View放在一起,
    尽量选择StoryBoard.

2.4 保险Images和UIImageView的轻重缓急相同(别缩放)

  • 要是这两边尺寸不雷同, 彰显的时候就会发出缩放. 缩放是耗费时间操作,
    在滚动视图中愈发耗费时间.

2.5 重用可能懒加载Views

  • 以此没啥好说的… …

2.6 考虑选择绘图函数

  • 减去了图片的采纳, 适当考虑.

2.7 采取合适的招数设置背景图片

  • 对此再一次铺满的背景图片, 能够使用UIColoer举办设置.

2.8 使用Shadow Path设置阴影

2.9 优化你的Table Views

3. 多线程

3.1 不要阻塞主线程

  • 主线程在拍卖UI, 如若举行耗费时间操作, 发生了不通, 就等着卡吧.

3.2 小心在线程里大批量的分配内部存款和储蓄器空间

  • 堆是有锁的, 每2个时时, 只好有二个线程举办内部存款和储蓄器分配操作.

4. 网络

4.1 启用GZIP 压缩

  • iOS和Web服务器对GZIP的援助很好, 尤其对于文本类(Json,
    XML)的压缩率很高, 能减弱到原来的伍分之一左右, 所以值得选拔.

4.2 收缩不须要的Web数据传输

  • 一旦只必要用户名和头像, 就别把性别, 城市, 兴趣爱好什么一起传过来.

5. 持久化

5.1. 选项正确的多少存储形式

  • NSUserDefaults
  • 结构化文件: XML, JSON, or Plist format
  • 归档: Archive using NSCoding
  • 数据库: SQLite
  • Core Data.

6. 其他

6.1缓存

  • 经过内部存款和储蓄器, 文件系统, 数据库对互联网数据等展开缓存,
    是提升品质的不二法则. 空间纬度上越近, 访问越快.

6.2 重用创造代价相当大的对象

  • 不需解释, 那也是干什么单例情势的存在.

6.3 制止双重处理数据

  • 例如解析Json数据, 比如计算表格中度

6.4 选取非常的数码格式(XML, JSON)

  • 一般的话xml数据大, 可是援助校验, 补助SAX解析, json数据小.

6.5 收缩运行时间

  • 那对使用体验很主要

6.6 防止选拔Date Formatters

  • 那货质量很差

6.7 启用编写翻译器优化增选

  • 默许的优化器选项是 -Os, 最快最小。
    可是即便不是特意开始展览科学总计的行使,你能够动用-Ofast,假若急需IEEE浮点运算,则足以选拔-O3。那七个挑选日常只会增多百分之几的使用体积,但是品质会明显升级。

6.8 启用连接器优化

  • 透过LTO进行接二连三优化。普通的装置,只是在单个.m文件内展开优化,启用该选项后,会在类型的大局范围内进行优化。

6.9 使用Accelerate框架

  • 这几个Curry提供了累累数学函数库,能够扶助您升官品质。

相关文章

网站地图xml地图