为什么 Windows 7 在几个月的时间里,如果使用纯色背景,登录速度会变慢?
我个人使用纯色背景。这是 Windows 95 的默认设置¹,从那时起我就一直使用这种蓝绿色的背景色。这有点像我的安慰食品。
当有人向我指出一篇题为 “在 Windows 7 或 Windows Server 2008 R2 中将纯色设置为桌面背景后,欢迎屏幕可能会在登录过程中显示 30 秒 ”的支持文章时,我的惊讶可想而知。为什么使用纯色背景登录速度会变慢?
验证登录后,Windows 会设置您的桌面。这时会发生很多事情。创建任务栏。加载并初始化负责各种系统服务的组件。创建桌面窗口并填充图标。桌面背景窗口加载桌面壁纸并将其绘制到屏幕上。
登录系统等待所有这些组件报告它们已准备就绪,当收到所有组件发出的 “无误 ”信号或 30 秒过后,登录系统就会从 “欢迎 ”屏幕上切换下来。
鉴于这种设计,你可以想象 30 秒延迟的原因: 这意味着其中一个部件未能报告。也许是这样写的:
InitializeWallpaper()
{
if (wallpaper bitmap defined)
{
LoadWallpaperBitmap();
}
}
LoadWallpaperBitmap()
{
locate the bitmap on disk
load it into memory
paint it on screen
Report(WallpaperReady);
}
报告壁纸已准备就绪的代码位于壁纸位图代码中,这意味着如果没有壁纸位图,就永远不会进行报告,登录系统就会白白等待一个永远不会到来的报告。
文章后面还提到一篇相关文章,其中指出如果启用了 “隐藏桌面图标 “组策略,也可能会出现 30 秒的延迟。
组策略之所以容易出现这个问题,是因为它们往往是在主代码编写完成后才被添加上去的。当你需要添加组策略时,你需要找到执行该操作的代码,然后在其周围加上一个巨大的 “如果策略允许”。
// Original code
InitializeDesktopIcons()
{
bind to the desktop folder
enumerate the icons
add them to the screen
Report(DesktopIconsReady);
}
// Updated with group policy support
InitializeDesktopIcons()
{
if (desktop icons allowed by policy)
{
bind to the desktop folder
enumerate the icons
add them to the screen
Report(DesktopIconsReady);
}
}
哎呀,”if “块的范围超出了报告调用的范围,所以如果启用了策略,图标永远不会被报告为就绪,登录系统会在欢迎屏幕上停留整整 30 秒。
请注意,在这两种情况下,登录时间都没有延长 30 秒。而是欢迎屏幕停留了整整 30 秒,而不是所有系统报告就绪的实际时间(可能是 5 秒,也可能是 25 秒,这取决于系统的性能)。
如果查看文章上的时间戳,就会发现该问题是在 2009 年 11 月修复的,也就是 2009 年 7 月 Windows 7 发布几个月后。
¹ 最初,我避免使用位图背景,因为它们会占用大量内存,而当你只有 4 或 8 兆内存时,仅壁纸就占用四分之三兆内存的投资回报率并不高。
此外,我倾向于坚持使用默认配置,因为这样可以更容易地进行错误归档。如果重现说明是 “从头开始安装系统,然后执行这些步骤”,那么比起 “从头开始安装系统,更改默认设置中的这 50 项设置,然后执行这些额外步骤”,你更容易获得关注。与要求用户更改默认设置的错误修复相比,影响默认配置的错误修复更容易证明其合理性,尤其是在这些设置比较模糊的情况下。
本文文字及图片出自 Why did Windows 7, for a few months, log on slower if you have a solid color background?
你也许感兴趣的:
- 非官方 Windows 7 Service Pack 2
- Windows XP市场份额大跌 被停售Win7成微软最流行系统
- Debian APT 3.0 的新功能
- 7 个精妙的 Python 内置命令行技巧,让您的编程更轻松
- Rust 和 C 文件系统 API
- webassembly 二维布料仿真模型
- 您的手机并没有偷偷监听您,但事实却更令人不安
- Python 3.14 的 3 个语法更新将使您的代码更安全、更好用
- OpenAI 希望收购 Chrome 浏览器,使其成为 “人工智能优先 “的体验
- 14 个 Python 高级功能
你对本文的反应是: