文/Anyway
常常听到周围有童鞋向我反映,说运行程序好卡,是不是运行内存太小了,要经常关闭后台运行的程序?
依照我们通常的理解,运行程序后按下home键,它就在后台运行了,双击home,后台运行的程序便一目了然。不少人建议,经常清理后台程序,不仅省内存,而且节电。事实上,这是一个普遍的误区:我们将使用Windows的经验套用在了iOS上。在Windows中窗口开太多会卡,因为后台程序的确在运行,而iOS的后台处理机制则有着本质区别。
iOS的“伪后台”别具一格,掩人耳目。当你按下Home键时,程序“退出”,我们看到了程序后台运行的假象。与此同时系统将会交给程序通常是5秒钟的执行缓冲时间(有些可要求延长至10分钟),在此期间,你所运行的程序进度便被保留。过了缓冲节点,程序就被终止。也就是说,按下home键后不出5秒,程序都将被关闭,而非驻留在后台。既然iOS并不具备传说中处理后台多任务的能力,又何谈清理后台程序呢!
那么双击home后所查看到的程序又是什么呢?与其被定义为“后台运行的程序”,不如说是“最近使用的程序”比较妥当。你现在可以将iTouch/iPhone关机,那么内存将会被清光,但是开机后再双击home,那些程序依然存在。也就是说,双击home所显示的程序并不在内存中运行,那些只是最近使用过的程序的记录,并没有其他含义。不少童鞋很喜欢在那里一个个关“后台”,其实只是在清理“最近使用”,除了保护隐私或是太无聊了打发打发时间,没有实际意义。
但我们用sbsettings等工具查看到的剩余运行内存又是怎么一回事呢?这涉及到内存的管理,在此不妨打个比方。我们把写字台看作是内存,在工作时你会从抽屉中取出不同的物品堆放在台子上,它们就是可运行的程序。为了方便,你不可能刚用完一本书、一支笔就放回抽屉,它们依旧留在桌上,这就相当于程序已经终止但依然占用着内存。慢慢地,台子被堆满,这时你搬来一台打印机,发现无处可放了,于是将一些暂时用不到的物件收拾起来送回抽屉——内存又被闲置出来去运行新的程序。这样管理内存是最高效的,加快了程序的开启速度。由此看来,清理内存无益于加速系统,倒还显得有点没事找事了。
有人反映说,如果后台程序开多了,确实会有卡顿现象出现。原因也正在于它的内存管理机制:内存在被释放时也需要消耗一定的系统资源,如果释放的程序比较多,那么就需要更多时间来解决。但是相比于你一个个关程序的时间来说,卡顿的时间显得如此微不足道——仅仅是不适而已。又何必在意呢?
那真正的后台程序有吗?有的。比如会持续在后台播放音乐的程序,不过只要这些程序不再执行动作,就会变成中止的程式,像是音乐播完了、杂志下载完了……这些程序并不多,因此也完全无需过多在意,放心,iOS已经帮你全部搞定了。
总而言之,iOS根本不用关后台,亦不用清内存,苹果帮你省事,你又何必自寻烦恼——只管用就行。iOS说到底只是一个手机操作系统,它所侧重更多的是娱乐,所以“伪后台”不仅没有饱受诟病,还保证了系统的顺畅运行,帮助iOS一跃成为近年来最火烫的手机OS。如此巨大的成功与它独特的后台处理机制是分不开的。
技术贴,欢迎指正。Anyway原创撰文。
参考资料:
http://www.cnbeta.com/articles/168348.htm
http://bbs.weiphone.com/simple/?t1910159.html