重新内存分配的改变让Firefox崩溃次数降低70%

用户在 windows 平台上使用 firefox 时,遇到的最常见的不稳定原因就是崩溃,而且这一现象在 windows 平台上的严重程度远高于 linux 和 macos。因此,mozilla 花了大量的资源来减少 firefox 的内存消耗,并仔细监测这些变化。然而,mozilla 近日透露,他们此前所作出的所有努力都不如他们在 firefox 105 中部署的一个小改变有效。
首先,要了解为什么在 windows 上运行的应用程序与其他操作系统相比更容易耗尽内存产生崩溃,就必须了解 windows 如何处理内存。 所有的现代操作系统都允许应用程序分配一块地址空间。最初在没有数据被存储在其中时,这些块只代表没有物理内存支持的地址范围。当一个应用程序开始使用它所保留的地址空间时,操作系统将拿出一块物理内存来支持它,如果需要的话,可能会交换掉一些现有的数据。linux 和 macos 都是这样工作的,windows 也是如此,只是与其他操作系统相比,windows 需要执行一个额外的步骤。 在一个应用程序请求了一块地址空间之后,应用需要在能够使用它之前提交使用范围,这个范围需要 windows 保证它总是能够找到物理内存来支持它。之后,windows 的行为就像 linux 和 macos 一样没什么区别了。
因此,windows 限制了可以提交的内存大小,即机器的物理内存加上交换文件的大小之和。 提交空间(commit space)是应用面对的硬限制,只要达到这个限制,内存分配就会失败。
firefox 开发者在分析浏览器崩溃问题时发现,在很多情况下发生崩溃时,用户设备上的可用物理内存仍然很多,但提交空间却耗尽了。 因此他们决定采用一些技巧来规避这一问题,也就是当内存分配失败时,浏览器不是立即崩溃,而是先等待下,然后尝试重新内存分配。虽然这会导致浏览器卡住短暂的几分之一秒,但远比彻底崩溃好得多(当交换文件快满时,windows 会自动调整它的大小,增加可用的提交空间)。 mozilla 在 firefox 105 中应用了这一改变,显著改进了浏览器的稳定性。
下面的图表显示了用户在每一个活跃的使用小时中经历了多少次内存耗尽的浏览器崩溃(崩溃次数减少了 70% 以上,远远超过了 mozilla 当初的预测)。
mozilla 表示,虽然他们已经在 firefox 105 中实现了这项改进,但实际上这项改进还没有彻底完成,因为目前延缓主进程会导致标签页崩溃次数小幅增加,这对用户来说也是不愉快的使用体验,虽然没有完整的浏览器崩溃那么烦人,但团队依然在尝试减少这样的情况发生。

最主观的荣耀V9轻评测:从跑分参数到注重体验
VESD联网防静电门禁管理系统有哪些功能?
美国司法对谷歌提起反垄断诉讼 谷歌与苹果之间有什么秘密?
Neato智能扫地机器人的特点介绍
常用时间继电器的原理
重新内存分配的改变让Firefox崩溃次数降低70%
高压三相驱动器的特点优势及家电设计开发中的应用
空调扇对人体有害吗
锤子t3最新消息曝光 采用骁龙821没赶上骁龙835
升压电源和高压DAC为天线和滤波器提供调谐信号
华硕笔记本保修条例
避免数据安全事故的发生,何为解决之道
科达嘉推出工业级一体成型电感CSAG系列
真正DIY勇士,打造超复杂LED立方光升级版
奥地利电网计划在未来10年投资25亿欧元用于电网建设
Verilog HDL语言的文件调用问题:include使用方法介绍
基于GPS和3G的智能公交终端设计方案
飞兆半导体推出便携音频产品发展计划
气密测试仪校验工具标准漏孔的四大作用
什么是变压器铜损和铁损?变压器的铁损与铜损的区别是什么呢?