一个小改变,让 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 中实现了这项改进,但实际上这项改进还没有彻底完成,因为目前延缓主进程会导致标签页崩溃次数小幅增加,这对用户来说也是不愉快的使用体验,虽然没有完整的浏览器崩溃那么烦人,但团队依然在尝试减少这样的情况发生。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Docker Hub 分析:隐藏了超 1650 个恶意镜像
Sysdig 威胁研究团队对超 250,000 个 Linux images 进行了分析,以了解在 Docker Hub 上的容器镜像中隐藏了何种恶意负载。结果表明,其中有 1,652 个被识别为恶意镜像。 研究团队根据几个类别收集了恶意镜像。分析主要集中在两个主要类别:恶意 IP 或域名,以及 secrets。两者都可能对用户下载和部署 Docker Hub 中公开可用的镜像构成威胁,使他们的环境暴露在高风险之下。 如预期的那样,cryptomining images 是最常见的类型,在 608 个容器镜像中发现;它们以服务器资源为目标,为威胁参与者挖掘加密货币。第二普遍的是 embedded secrets,共 281 起。研究人员指出,这突出了 secrets management 的持续挑战。 “由于无意中的不良编码行为,secrets 可能会嵌入 image 中,或者这可能是威胁行为者故意为之。通过将 SSH 密钥或 API 密钥嵌入到容器中,攻击者可以在部署容器后获得访问权限。为防止凭据意外泄露,敏感数据扫描工具可以在开发周期中提醒用户。” Sysdig 还发现的许多恶意镜...
- 下一篇
【限时激励】考openGauss认证,领京东卡
openGauss相关认证介绍 OGCA证书:https://opengauss.org/zh/training/(相关推荐:openGauss认证工程师训练营(第2期)开营啦!) HCIA-openGauss证书:https://e.huawei.com/cn/talent/#/cert/product-details?certifiedProductId=503&authenticationLevel=CTYPE_CARE_HCIA&technicalField=PSC&version=1.0 NCRE-openGauss数据库程序设计(全国计算机等级考试二级):https://ncre.neea.edu.cn/ 申请京东卡激励的回帖模板 你好!我已在11.1-12.31日期间获得openGauss证书,并已在鲲鹏社区完成实名认证,特申请京东卡激励: 【姓名】:xxx 【联系电话】:xxx 【京东卡收货地址】:xxxxxxxx 【创新中心推荐人】:xx区域创新中心-xx员工(若不是创新中心推荐,此项可以不填写) 【申请材料】:如下 1、本人已完成鲲鹏社区注...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启