【译论】是什么原因导致 Windows 11 的性能比 Windows XP 差得多?

【译论】是什么原因导致 Windows 11 的性能比 Windows XP 差得多?

凯西-穆拉托里(Casey Muratori)在 YouTube 上发布了一些很棒的视频(又称:咆哮),讲述了在过去二十年里,尽管计算机的各种指标都提高了 10-100 倍,但最终用户仍能看到性能下降的情况。

例如

Visual Studio Rant https://www.youtube.com/watch?v=GC-0tCy4P1U

未经优化的终端运行速度应为多少? https://www.youtube.com/watch?v=hxM8QmyZXtg

根本原因在于微软根本没有将性能作为优先考虑的因素。这不是(几乎)任何人的关键绩效指标,当然也不是桌面团队中任何人的关键绩效指标。高层管理人员不会将输入延迟放在遥测或广告 “功能 “之上。就是这么简单。没有压力,没有对缓慢代码的排斥,没有衡量标准,没有对优秀工程的自豪感。只要能勉强运行,就可以交付。

微软员工偶尔也会发表评论,但他们的言论与易于验证的事实背道而驰,例如新记事本、新终端和计算器应用等琐碎工具的性能大幅下降。

实际的具体技术原因包括

– 过去,可执行文件每次从磁盘加载一个 4KB 的页面。只要加载了第一个 4KB 块,就可以开始执行。长期以来,可执行文件都是使用 SHA1 或 SHA256 等哈希值进行数字签名的,这意味着大型可执行文件在加载整个文件之前,实际上无法开始运行任何代码。显而易见的解决方法是使用 Merkle 树散列,而不是像 SHA256 这样的线性、单线程、全文件散列。

– 同样,像 Defender 这样的反恶意软件也会暂停执行,直到整个文件检查完毕。这通常比散列检查还要慢。在实践中,这种缓存效果很差,甚至根本不存在。

– 桌面窗口管理器(DWM)会在更新到达屏幕前执行多层缓冲和交换。Windows 11 的最新版本在这方面有所改进,但仍有一些开销。一个有效的终端用户解决方案是使用高刷新率显示器,如新的 240 Hz OLED。网上有一篇很好的评论,可以概括为 “只有苹果公司关心这个问题”:https://danluu.com/input-lag/。

– 重量级依赖。现代图形用户界面工具包(如 WinUI)如果看错了,就会拖入人类编写的所有源代码的一半。对于某些人(使用电池的超极本)来说,计算器应用需要几十秒才能启动,因为它在加载 “Windows 10 Hello for Business 账户恢复助手 “等疯狂的东西!为什么?因为没有什么是共享的了,每个进程都会加载自己的依赖项……比如:HTTP 客户端,需要 HTTP 代理支持,需要 HTTP 代理验证,需要 Windows 验证,包括 Windows 10 Hello for Business 免密码验证,需要……账户恢复图形用户界面。计算器应用程序还有终端。PowerShell一般 CLI 工具等等…是的,太疯狂了。(请记住,每个依赖项都必须完整加载、散列、签名检查和恶意软件扫描!)。

– 遥测。每个团队都说他们做得很有效率,但只是在客户投诉堆积如山之后。有些团队永远学不会,因为对他们来说这很快,要么是因为他们知道关闭遥测的密码,要么是因为他们距离遥测收集端点只有 1 毫秒的距离。例如,英特尔公司(一家硬件公司!)在其驱动程序中强制安装了多个遥测工具,每天在我的笔记本电脑上花费的 CPU 时间超过 10 分钟(!!)。我不得不使用 NTFS ACL 来阻止这些东西的执行权限,因为它比 Bonzi Buddy 更积极地 “修复 “自己。英伟达将其遥测数据注入第三方进程,因此内置计算器应用程序的启动时间约有 20% 是英伟达遥测数据。这不是游戏!它只是碰巧使用 DirectX 进行图形处理……所以英伟达必须知道这一点。等等…微软自己是第一大罪人。有一次,Office + Windows 有 220 个单独的遥测服务或端点,我不得不跟踪并禁用它们(用于一个安全的 VDI 项目)。

附注:当一个厂商开始发布变通方法作为其产品错误功能的一项功能时,你就知道情况不妙了。新的 Windows 11 “Dev Drive”[2]只是作为绕过 Window Defender 巨大开销的一种变通方法而存在。你会天真地认为,只要将文件夹从 Defender 中排除就能达到同样的效果。不!就连 IntelliJ IDEA 的开发人员也被这一点给骗了,他们的 IDE 有一个功能[3],可以将项目文件夹排除在实时 A/V 扫描之外。这在 Windows 11 中毫无作用!所有文件都会被 Defender 扫描,即使安装了第三方防病毒软件。即使在 Windows Server 上也是如此,这也是 Azure DevOps 构建管道在 Windows 上比 Linux 上慢 4 倍左右的主要原因之一。[4]

[1] 公平地说,大多数软件公司都是如此。整个行业都对性能优化过敏,经常出现价值数十亿美元的产品,但其中的性能问题却让你大吃一惊。想想 Jira 的速度有多慢,再看看 https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times…

[2] https://learn.microsoft.com/en-us/windows/dev-drive/

[3] https://intellij-support.jetbrains.com/hc/en-us/articles/360…

[4] https://github.com/microsoft/azure-pipelines-agent/issues/44…

相关风暴

如何合并 2 个未分配分区 Windows 11/10/服务器
office365个人邮箱

如何合并 2 个未分配分区 Windows 11/10/服务器

🌀 12-22 🌊 阅读 1616
史上最贵电子表 卡西欧G-SHOCK卖价280万元 添加AI元素设计
office365个人邮箱

史上最贵电子表 卡西欧G-SHOCK卖价280万元 添加AI元素设计

🌀 02-22 🌊 阅读 2573
一兆等于多少亿?感受这个庞大数字的惊人规模
365bet注册送36

一兆等于多少亿?感受这个庞大数字的惊人规模

🌀 07-21 🌊 阅读 5735