5年了,使用火狐浏览器导致CPU异常高负载的罪魁祸首终于找到
自2018年11月以来,一些用户发现,WindowsDefender中的一个未知错误会使得用户在打开Firefox火狐浏览器时,CPU占用率会异常提高进而影响浏览器性能。多年来,此问题该一直在影响用户,并且不仅限于Windows10。
今年3月,Mozilla工程师YannisJuglaret在Bugzilla发帖表示(Bugzilla是由开发网络浏览器Firefox的Mozilla基金会运营的错误管理系统),他们已经确认了导致此问题的具体原因,并且将其细节反馈给了微软Windows团队,等待其修复。
该工程师表示,当前版本的MsMpEng。exe中存在严重的性能问题。这个性能问题使得在Windows系统中,当WindowsDefender的实时保护功能激活时(不合理高占用计算在MsMpEng。exe进程中执行),对VirtualProtect(以及其他事物)的调用变得不合理。而在标准的Firefox配置中,对VirtualProtect的调用数量目前非常高,这就解释了打开Firefox后出现的CPU高使用率问题。
由于对VirtualProtect的调用大多数是JIT引擎引起的,随后,YannisJuglaret尝试在Firefox中禁用JIT引擎以解决不合理的CPU占用问题,禁用JIT引擎之后,他还进行了性能测试。
YannisJuglaret的测试结果显示,在正常情况下,打开火狐浏览器,系统的CPU就会出现严重且不合理的资源占用(如下表。图中红色区域代表有大量的CPU高负载情况),这极大影响了应用本身的运行效率。
而在禁用JIT引擎之后,CPU高占用的红色区域大幅减少。由此可见这个解决思路是正确的,MsMpEng。exe的问题很大。
(总CPU时间从16秒减少到6秒;CPU时间减少了63))
该工程师和微软沟通后,目前,微软表示已经发布了一个补丁,将在即将到来的3月发布(mpengine。dll引擎版本1。1。20200。23)中尝试缓解这个问题,这意味着用户将在接下来的4周内逐渐获得修复。微软表示,修复之后,MsMpEng。exe的CPU使用率将减少多达75。
5年了,这个困扰火狐浏览器用户多年的老问题,如今终于有了解决办法。
微软Windows团队,你可长点心吧。