我们先澄清一个概念,我们通常所说的内存,是指系统的缓存,也就是用“显示电量”软件看到的“内存”,这个缓存通常比较小,不到1兆,它是手机储存、内存卡存储和机器自身系统中程序运行时即将用到的数据的缓存区,当手机存储、内存卡存储、机器自身系统和机器cpu之间的数据交换的时候扮演桥梁的角色。这个桥梁,却成往往为机器死机的罪魁祸首,通常的机器死机或多或少都与它有关。以后我们提到的内存,就是这个“内存”而不是什么“手机存储”大家要注意!手机存储相当于我们的电脑硬盘,在手机中和内存卡存储一样,只是存储设备,并不是什么内存(在手机中有一个有趣的现象,就是我们把机器自带的存储部分就叫内存,这的确误导了很多人)。好了,内存到底是什么我们明白了,接下来我们就说说手机存储空间不足为什么会导致死机。
· 先举个例子吧:还记得早些年的老电脑吗!它们通常硬盘都不会很大,当我们疯狂向里面存储东西,即将把硬盘塞满但还未满时(比如还剩100多兆空间),电脑经常出现的情况吗?对了!那就是蓝屏。为什么蓝屏呢?不是还有100兆可以用的吗?这就要从电脑的存储数据的原理入手:电脑无论在运行什么程序的时候,都要把这个程序要用到的相关数据从硬盘读出来,存到内存中,然后cpu再把它进行计算时用的数据从内存取出来(这里面还要经过cpu自带的一级二级缓存这个“桥梁”,一级、二级缓存在内存条和cpu之间所扮演的角色就相当于内存条在硬盘和cpu之间所扮演的角色一样,起到加快数据交换的作用),读到cpu中进行计算,要知道cpu从内存条中读数据要比从硬盘直接读数据快的多,这样就大大提高了程序执行的速度。计算完毕后,cpu就执行计算的结果,比如计算结果是执行一条指令:打开文件夹,那么电脑就会把文件夹里的内容显示出来。再比如我们正在输入一篇文档,电脑的cpu通过我们敲击键盘计算出我们输入的是什么文字,那么它把我们输入的文字放在那里了呢,就是放在内存中,直到我们给它一个命令,让它把我们输入的文字“存盘”,它才会把我们输入的内容从内存条中转储到硬盘上。然而事实是,电脑之所以能运行,都是由于有cpu的计算,我们一切的动作,甚至包括显示器显示,包括我们移动一下鼠标,都要经过cpu的计算和指挥,而这些计算和指挥的复杂庞大的中间结果,往往都要暂时存储在内存条中,只有cpu认为内存已经装不下了,或是我们给了电脑一个命令,命令它存盘,才会转存在硬盘上,这个过程中硬盘一直在告诉旋转,随时准备接受从内存转储过来的数据。而cpu这时还要抽出精力来时时检测存储在硬盘上的位置,以便下次再存储时从这个位置接上。而我们的硬盘在装的差不多快满时,往往那点剩余空间都以碎片形式存在,更增加了cpu时时检测存储在硬盘位置上的难度,加上以前的cpu运行速度不是很快,内存条又不是很大,这种转储就要经常进行,这种大量的数据交换造成了cpu疯狂的运算,弄不好就造成死机。这就是为什么电脑剩余空间不多时经常蓝屏或死机的原因。
· 好了,说了这么多电脑,无非就是要抛砖引玉,把话题引到我们的手机上,前面说过手机里的存储和内存卡存储都是手机里的存储设备,不是真正的“内存”,只是相当于电脑里的硬盘,而真正的内存是不到1兆空间的“内存”(这个我们通过软件“显示电量”可以看到的,或者是文件管理器里的“系统信息”都可以看到)这个“内存”才是真正相当于电脑里的“内存条”。话说到这里已经很明白了,为什么手机存储空间不足时比较容易死机,smartphone系统和电脑windows系统的相通之处,对照上面的电脑蓝屏,不用再多说了吧。
· 大家都用OxiosHibernat这个释放内存的软件吧,有没有注意到一个很有趣的现象?那就是无论你在什么情况下,无论你的系统有多么慢,无论你在释放内存之前用了什么程序,只要你点击了OxiosHibernat来释放内存,被释放的内存从来都没有超过888k,这就对了,因为“存储内存”本身才888k,你释放的怎么可能超过它呢。我们这个大名顶顶的释放内存软件,释放的就是相当于电脑里内存条和手机里的内存,而不是什么手机存储和内存卡存储。