IOS应用性能的提升

从开发第一个苹果应用到现在差不多半年的时间,期间大多开发的是新闻资讯类的应用,偶尔开发几个工具类应用,积累了不少解决方案和开发经验,但是开始开发的时间比较紧张,所以一直是一边开发一边找实现功能的方案,没有时间学习基础,多很多地方也是一知半解,只是知道可以这么做就实现这个效果,所以想利用最近的时间提高一下对IOS里一些机制的了解,一个开发者的好坏在于他的应用的性能是好是坏,所以我想就从如何提高应用性能方面作为切入点进行学习。
根据自己的开发经验,我认为关系应用性能的有两个方面,硬件和软件,硬件当然就是指的应用物理载体本身的性能,比如内存,CPU等;软件就是指的应用本身的框架,平台,机制还有程序代码。就软件方面,我找出了几个提高性能的点,1.IOS的内存管理机制,ARC,2.多线程的利用,3.延迟加载的利用,4.缓存的使用,我将从这四个方面进行研究,以此提高对IOS的理解和认识
第一部分:内存管理
ObjectiveC采用的是手动的内管管理机制,在最新的ios5中进入了ARC的模式,可以自动管理内存,但是现在还有大量的机器仍然使用ios4,所以应用中没法采用这个新特性,所以仍要通过手动管理内存。在程序中,对象被创建会在堆里分配内存控件给此对象,然后通过引用计数的机制管理对象的销毁,内存的释放,所以当对象alloc或者retain,copy后不release,则内存将不会被释放,造成内存泄露,所以提高程序的性能和稳定性,首先要避免内存泄露的情况。
官方资料和网上达人也对此做了一些总结,总结出几个原则:
1.谁创建(alloc,copy,new)谁释放(release,autorelease)
2.谁保留(retain)谁释放
反映到IPHONE/IPAD开发中,就是对象内的实例变量要声明retain,建立get,set方法;在dealloc中release声明的变量;使用nib构建对象时,在voidDidUnload中对iboutlet设置为nil;函数需要创建一个对象并返回该对象的,要autorelease;使用mutablearray集合类的addobject函数时,要注意alloc的对象在addobject后要release,因为addobject会自动为这个对象的retaincount增加1,在集合销毁时会对每一个item进行release,这样集合中的对象指针就不会变成无效指针,所以需要alloc后放进集合后要马上release,不然会内存泄露;
未完待续.......
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值