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

局长
 局长
发布于 2020年07月06日
收藏 3

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

根据微软在补丁中的描述,他们发现 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 认为,修复小问题最终可以提升浏览器的性能。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:微软优化 chrome.exe 被固定到任务栏的过程,可降低 CPU 使用率
加载中
此新闻有 5 条评论,请先登录后再查看。
返回顶部
顶部