首先,要了解为什么在 W 上运行的应用程序与其他操作系统相比更容易耗尽内存产生崩溃,就必须了解 W 如何处理内存。[url=http:///www.linuxprobe.com/linux]Linux技术教程[/url]的最新消息可以到我们平台网站了解一下,也可以咨询客服人员进行详细的解答![align=center]https://www.linuxprobe.com/imgs/cover.png[/align]
所有的现代操作系统都允许应用程序分配一块地址空间。比较初在没有数据被存储在其中时,这些块只代表没有物理内存支持的地址范围。当一个应用程序开始使用它所保留的地址空间时,操作系统将拿出一块物理内存来支持它,如果需要的话,可能会交换掉一些现有的数据。L 和 OS 都是这样工作的,W 也是如此,只是与其他操作系统相比,W 需要执行一个额外的步骤。
在一个应用程序请求了一块地址空间之后,应用需要在能够使用它之前提交使用范围,这个范围需要 W 保证它总是能够找到物理内存来支持它。之后,W 的行为就像 L 和 OS 一样没什么区别了。因此,W 限制了可以提交的内存大小,即机器的物理内存加上交换文件的大小之和。
提交空间( )是应用面对的硬限制,只要达到这个限制,内存分配就会失败。F 开发者在分析浏览器崩溃问题时发现,在很多情况下发生崩溃时,用户设备上的可用物理内存仍然很多,但提交空间却耗尽了。
因此他们决定采用一些技巧来规避这一问题,也就是当内存分配失败时,浏览器不是立即崩溃,而是先等待下,然后尝试重新内存分配。虽然这会导致浏览器卡住短暂的几分之一秒,但远比彻底崩溃好得多(当交换文件满时,W 会自动调整它的大小,增加可用的提交空间)。
M 在 F 105 中应用了这一改变,显著改进了浏览器的稳定性。下面的图表显示了用户在每一个活跃的使用小时中经历了多少次内存耗尽的浏览器崩溃(崩溃次数减少了 70% 以上,远远超过了 M 当初的预测)。
M 表示,虽然他们已经在 F 105 中现了这项改进,但际上这项改进还没有彻底完成,因为目前延缓主进程会导致标签页崩溃次数小幅增加,这对用户来说也是不愉的使用体验,虽然没有完整的浏览器崩溃那么烦人,但团队依然在尝试减少这样的情况发生。 |