IT资讯 微软优化 chrome.exe 被固定到任务栏的过程,可降低 CPU 使用率

tylor · 2020-07-06 10:30:06 · 热度: 23

微软为 Chromium 提交的一个补丁能对检查浏览器是否被固定在任务栏进行性能优化。

微软优化 chrome.exe 被固定到任务栏的过程,可降低 CPU 使用率

根据微软在补丁中的描述,他们发现 Chrome 会在启动后的 45s 使用一段代码检测当前正在运行的 chrome.exe 是否已被固定在任务栏上。每调用一次这段代码(chrome!UtilWinImpl::IsPinnedToTaskbar)都会产生较高的 CPU 消耗(~300ms 的 CPU time 以及 1s wall time)。

这个过程主要包括:

  • 枚举被固定在任务栏文件夹中的所有快捷方式
  • 检查它们是否为当前运行的 exe 的快捷方式
  • 枚举所有与快捷方式相关的 Shell verbs
  • 检查 verb 是否处于"unpin"状态(即是否已被固定在任务栏)

上述的过程使用了一个单独的进程来进行检查,而且检查 Shell verbs 会导致 shell 扩展被加载,从而运行第三方代码,这些都会导致 CPU 使用率升高。

微软对这个过程进行了优化,他们认为无需在快捷方式上枚举 verb,而是使用代码库中的其他固定状态检查来代替。于是删除了枚举 shell verbs 的代码,并在浏览器进程中运行代码,而不是使用单独的进程,因为已经不再会加载第三方代码。

此项变更最后相应地降低了检查浏览器在任务栏状态时的 CPU 使用率。这个消耗可能对大部分配置来说可能并不明显,不过微软的 Eric Lawrence 认为,修复小问题最终可以提升浏览器的性能。

猜你喜欢:
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册