• 而一旦开一个不错之iOS app, 工程师的任务,
    就是尽可能的优化App的性能.
  • 正文绝大多数情节来自Macelo
    Fabri的文章,
    重新展开了组织.
  • 本文没有提Instruments,但是,它实质上是性优化的前提。他巧而易学中的确诊等,下面列有之都是医疗的配方。

1. 内存

1.1 使用ARC管理内存

以大多数气象下, 都应该用ARC, 因为:

  • 使用ARC, 当你的目标并非时, 系统会尽快的援手您进行release.
    MRC的口舌未必能够保证.
  • 运用ARC, 能帮您减内存泄露.

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 小心在线程里大量的分配内存空间

  • 堆积如山是发锁的, 每一个天天, 只能有一个线程进行内存分配操作.

4. 网络

4.1 启用GZIP 压缩

  • iOS和Web服务器对GZIP的支持好好, 尤其对于文本类(Json,
    XML)的压缩率很高, 能抽到原来的1/5左右, 所以值得采用.

4.2 减少非必要之Web数据传

  • 如果只需要用户称与头像, 就变更把性别, 城市, 兴趣爱好什么并传过来.

5. 持久化

5.1. 抉择正确的数量存储方

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

  • 其他


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框架

  • 本条库里提供了重重数学函数库,可以协助你升官性。

相关文章

网站地图xml地图