微软优化 chrome.exe 被固定到任务栏的过程,可降低 CPU 使用率
微软为 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 认为,修复小问题最终可以提升浏览器的性能。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
TIOBE 7 月榜单:易于学习使用的统计编程语言开始流行
TIOBE已公布2020 年 7月的编程语言排行榜。 在本期榜单中,各类应用于数据科学的语言是一大亮点。尤其是 R 语言,本月上升至第 8 位,创造了新的记录,TIOBE 称这是 R 语言“史无前例的高光时刻”。Python 不用说,一直在统计语言中拔得头筹,而 R 在 Python 如此强劲的势头下,还能保持流行度的上升。 对此,TIOBE CEO Paul Jansen 认为,近来有两大趋势起着关键作用:1)商业统计语言和软件包(如 SAS、Stata 和 SPSS)的时代已经结束,大学和研究机构采用 Python 和 R 进行统计分析,2)与 COVID-19 相关的研究,需要进行大量统计和数据挖掘。于是,易于学习和使用的统计编程语言开始流行了起来。 TIOBE 7月 TOP 20 编程语言 榜单前十位没有大的变化,C 语言连续第三个月蝉联第一,Java 和 Python 仍紧随其后。除了已提到过的 R 语言和 PHP 位置对调,Swift 和 SQL 也进行了互换,Swift 成功进入前十。 上个月 Rust 语言首次进入榜单前二十,此次由 20 名上升至第 18 位。排在它前...
- 下一篇
升米恩斗米仇,驳“开源侵略论”
三国时,吴国有个叫赵姬的女人,闺女出嫁前,她说:“到了婆家,你可千万不要做好事哟。”闺女不解,问母亲:“您不让我做好事,那我可以做坏事吗?”母亲立刻正色道:“好事都不能做,更何况是坏事!” 有人一看就明白这是个什么道理,有人可能一下还看不明白,文末我会说明一下。 开源是侵略? 最近,网上有篇非议开源的文章1,我看居然还有人转。真是哭笑不得。 本来大多数人就不了解开源,看了这个清华副教授的言论,估计有人就还真的相信开源在“侵略”中国科技了,所以有必要写下本文予以批驳。 这篇文章的名字是:警惕国外开源软件的隐形”科技侵略”。(以下简称“文章”) 有兴趣的可以看一下原文(<-点击即可)。 文章是记者冯丽妃对清华副教授刘利的采访,刘利介绍了自己团队自主开发的c-coupler软件(一种耦合器,用于地球系统模式的模拟计算),同时对开源软件表示了非议,认为开源软件对我国造成了“科技侵略”。文章中存在大量逻辑混乱和对开源的认知不清,不知刘利是否对最终稿做了审核?文章是否真实反映了刘利的本意?本文的批驳建立在以上两个问题的回答均为“是”的前提上。 (如果文章中的观点并非刘利本意,那大约就是记者冯...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境