先说闪退是什么,闪退就是程序崩溃了,原因多种多样,内存不足是一种,大部分是因为程序本身有BUG(BUG中野指针类居多,建议百度下野指针,能看懂的就看懂了,看不懂的就不解释了,几句话说不清楚)
讲一个概念,虚拟内存。咱从windows说起,让大家好理解。在windows上,如果你电脑有1G内存,但是你的程序需要2G内存才能跑,那这个程序会崩溃掉么?答案是一般不会。windows有虚拟内存机制,大概的意思是,用硬盘去扩充内存。硬盘和内存本质都是存数据嘛,无非内存快,硬盘慢,如果一个程序需要的内存多到要用上虚拟内存,那么也只会变慢,但是不会崩溃掉。这个技术很好是么,iOS有没有呢,sorry,没有
好,这里讲讲为什么去掉了虚拟内存机制。手机和电脑一个很大的区别是,电脑上同时运行许多程序的需求很大,比如我现在就一边听音乐,一边还开着QQ,一边还开着浏览器,因为屏幕大呀,可以同时放下好多程序的窗口。有了虚拟内存,windows可以同时运行很多程序,万一内存不够用,就用虚拟内存顶上,至少各个程序只是性能变差,但是不会崩溃。除非你开非常多非常占内存的程序,需要的内存超过了内存和虚拟内存的总和,系统才会被迫让一些程序终止,这种情况还是很少见的,但是理论上是可能的。但是,手机屏幕只有那么点点大,往往只能显示一个程序的窗口,加上虚拟内存会显著降低性能,iOS索性取消掉了多个程序同时执行的能力,也取消掉了虚拟内存。用户看上去可能觉得不是这样,比如音乐播放程序是可以后台执行的,Q