程序优化

内存优化

  • 使用analyze进行静态分析
  • 使用instruments的leaks进行动态内存分析
  • 查找检测僵尸对象,一般抱错EXC_BAD_ACCESS有可能与僵尸对象有关

优化资源文件

  • 图片文件资源的优化
  • 音频文件优化

延迟加载

  • 图片延迟加载,比如用scrollView显示多张图片
  • xib文件延迟加载

数据持久化的优化

  • 文件访问的优化
    • 避免多次写入很少的数据,最好是当数据积累到一定量的时候一次性写入
    • 最好开一个专用的线程负责文件的读写
    • 文件的写入采用增量的方式,不要因为部分修改而写入整个文件
  • 文件结构优化
    • 文件再能满足需求的情况下,尽量减少层次深度
  • 文件大小优化
    • 通过序列化plist文件减小文件的大小
    • 调整文件结构
    • NSPropertyListSerialization dataWithPropertyList:+ format: options: error:可以按照指定格式和操作参数,序列化属性列表对象到NSData对象,options包含的枚举值:
      • NSPropertyListImmutable 属性列表包含不可变对象
      • NSPropertyListMutableContainers 属性列表父节点是可变类型
        NSPropertyListMutableContainersAndLeaves 属性列表的父节点和子节点都是可变的
    • formater格式设置为nil或者NULL说明自动识别

使用SQLite数据库

  • 表结构的优化
    • 表的个数不宜超过五个,表中字段说也不宜过多
  • 查询优化
    • 建立索引,使用where语句,限制返回记录数等
    • SELECT * from table LIMIT 10//10表示查询的组大记录数,5表示偏移量,即跳过前五个
    • where查询语句的优化:尽量不用LIKE模糊匹配查询,如果可能尽量使用 = ,尽量不要使用in,可以用= 或者 or 代替.
  • 插入删除优化
    • 使用PRAGMA指令,有一些指令可以改变数据库行为,PRAGMA synchronus指令可以设置数据库同步操作,同步操作是指在插入数据的时候,将数据同事保存到存储媒介中,如果设置为OFF,则关闭了同步,不等待数据保存到存储介质中就可以继续执行插入操作,可以提高大量数据插入时的效率.OC的调用:sqlite3_exec(db,”PRAGMA synchronous = OFF”,nil,nil,nil);

使用Core Data

  • core data提供了缓冲,延迟加载等技术,性能比较好,但是有时候性能不如sqlite,这主要与数据存储的类型有关.coreData主要有NSSQLiteStoreType,NSBinaryStoreType和NSInMemoryStoreType,尽量使用NSSQLiteStoreType

可重用对象的使用

  • 表视图单元格的重用
  • 表头,表尾的重用
  • 地图视图可重用对象,主要是MPPinAnnotationView

并发处理多核CPU

利用runLoop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值