随笔分类 -  内存管理

摘要:在开发iOS应用程序时,让程序具有良好的性能是非常关键的。这也是用户所期望的,如果你的程序运行迟钝或缓慢,会招致用户的差评。然而由于iOS设备的局限性,有时候要想获得良好的性能,是很困难的。在开发过程中,有许多事项需要记住,并且关于性能影响很容易就忘记。本文收集了25个关于可以提升程序性能的提示和技巧,把性能优化技巧分为3个不同的等级:初级、中级和高级初级在开发过程中,下面这些初级技巧需要时刻注意:1.使用ARC进行内存管理2.在适当的情况下使用reuseIdentifier3.尽可能将View设置为不透明(Opaque)4.避免臃肿的XIBs5.不要阻塞主线程6.让图片的大小跟UIImage 阅读全文
posted @ 2013-05-23 15:50 iPhone Dev 阅读(545) 评论(0) 推荐(1)
摘要:iOS的任务管理和内存管理,跟windows是有很大差别的。很多FY习惯于用 windows的思维去看待IOS。 WIndows大家都知道,窗口开的越多,系统越慢,为什么呢?因为所有窗口都在运行,CPU占用率高;并且都占内存。可用内存不足还会迫使系统使用硬盘充当虚拟内存,硬盘频繁读写当然会多耗电,并且硬盘速度也比较慢。iOS则不同。首先IOS的后台任务,除了极少数可以后台运行之外(比如音乐播放),绝大多数在后台都是挂起的。比如极品飞车,切到后台后马达轰鸣声就没有了,切换回来后得点“继续”才能继续跑。这类软件让它后台继续运行除了徒增耗电之外,没有任何意义。你总不希望极品飞车在切到后台时赛车还继续横冲直撞吧? 阅读全文
posted @ 2012-04-23 16:47 iPhone Dev 阅读(1591) 评论(0) 推荐(1)
摘要:1.关于程序后台数据处理 iOS系统在程序进入后台状态后进行数据处理的时间是5s,但这个时间很短,如需在后台进行需要较长时间处理的工作,可向系统申请将这个时间延长,最长为10分钟,这段时间内程序可在后台进行相关数据操作,经测试,可以进行后台下载任务代码如下,在程序delegate中加入:#pragma mark -#pragma mark Background Task Handle- (void)applicationDidEnterBackground:(UIApplication *)application{ NSLog(@"!!!%@",NSStringFromSe 阅读全文
posted @ 2012-01-16 12:01 iPhone Dev 阅读(1355) 评论(0) 推荐(0)
摘要:简单的说,每次事件处理时候开始的时候,ios会为我们自动生成一个autorelesepool,,结束的时候释放掉。之前我们有误解是只有在main程序中有一个autoreleasepool,我们代码中所有autorelease对象都在这个pool中,这个观点是不正确的。You have to understand the concept of a run-loop. The run loop in iOS waits for some event to happen and then it acts upon it. That event could be the user touching t 阅读全文
posted @ 2011-08-30 09:38 iPhone Dev 阅读(4916) 评论(0) 推荐(0)
摘要:版权声明此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com,且必须包含此版权声明的完整内容。版本 1.1发表于2010-03-08二口诀与范式1 口诀。1.1 谁创建,谁释放(类似于“谁污染,谁治理”)。如果你通过alloc、new或copy来创建一个对象,那么你必须调用release或autorelease。换句话说,不是你创建的,就不用你去释放。例如,你在一个函数中alloc生成了一个对象,且这个对象只在这个函数中被使用,那么你必须在这个函数中调用releas 阅读全文
posted @ 2011-08-18 14:14 iPhone Dev 阅读(295) 评论(0) 推荐(0)