Linux内核和jvm应该被视为苹果和橘子。混淆两者可能是灾难性的。
例如,linux内核的虚拟内存本质上是一个交换文件,并没有对单个进程大小设置限制,这会在文件已满时导致“颠簸”或无休止的交换。
与之形成鲜明对比的是,jvm(它只是另一个linux进程)为其应用程序设置了一个共同的最大大小(例如256MB)。 Android应用程序通常在自己的jvms中运行,防止任何给定的jvm“颠簸”。相反,GC将抛出一个OOM并退出。
当内存虚拟内存耗尽时,Android将进一步杀掉应用程序(包含活动线程组的任务的jvms),如果需要,稍后重新启动它们。它仍然可以冻结(捶打),但不是经常冻结,例如。无人值守的Linux数据库或Web服务器。
颠簸(冻结)android的解决方案与颠簸的linux服务器完全相同。弹跳(循环动力)。因为它是一个linux服务器。
考虑到Android已经为全世界提供了数百万个完全连接但大多数空闲无处不在的Linux服务器,这些服务器可以容纳无数群多线程进程(jvms只有一种类型)。
它拥有终极超级计算机的骨骼,甚至使最精细的数据中心相形见绌。
甚至没有提到大多数机器人都有并行处理器(GPU)比它们的CPU快100倍,再次只是闲置。除了一些知道如何解雇他们的游戏玩家。
仅作为概述,这个帖子上已有很好的链接。