我最近从 8.1 升级到了 10(之前是 7)。登录时,我让一堆我需要的程序自动启动并进入系统托盘:procexp(用于监控)、聊天客户端、super-f4 和 flux 等工具等。这种自动启动的情况多年来几乎没有变化,而且应该不会持续很长时间,因为它们都是相当轻量级的程序。
在 Windows 7 上,登录后一切都进行得很快,我的系统托盘上充满了必要的图标,就像机关枪一样。自从我买了 Windows 8 和 Windows 10 后,速度就慢了很多,以至于我等了很长时间才开始,但 Windows 似乎什么都没做。我更换了杀毒软件和其他各种因素,但都无济于事。似乎是 Windows 本身以某种方式拖慢了进程。
我有一个快速的 SSD、8GB RAM,没有任何特殊问题等等。
我昨天用 Windows 性能记录器做了检查,这是图表概览:
CPU 有一半的时间处于空闲状态,我的 SSD 没有做太多事情,RAM 充足。
其他人基本上看到他们的性能不断提升,直到一种资源成为瓶颈,这正是我想要的。是什么让我的登录后启动时间这么长?我到处都看到模糊的暗示,较新的 Windows 会人为地延迟启动,以方便那些不希望 PC 在登录后成为资源瓶颈的人(老实说,这是适得其反的),但我找不到这方面有什么困难。
登录时事件查看器中没有重复出现的错误,所以也不是这样的。
还有什么可能会拖慢我的进度?
答案1
当你在WPA中打开ETL时,点击Profiles
-> Apply
->Browse Catalog
并选择文件,FullBoot.Boot.wpaprofile
你会看到这样的概述:
并发现最长的延迟发生在 WinlogonInit 阶段(27 秒)。
当 SMSSInit 完成并启动 Winlogon.exe 时,WinLogonInit 子阶段开始。在 WinLogonInit 期间,会出现用户登录屏幕,服务控制管理器会启动服务,并且会运行组策略脚本。当 Explorer 进程启动时,WinLogonInit 结束。
视觉提示 WinLogonInit 在登录屏幕出现前不久开始。它在桌面首次出现之前结束。
WinLogonInit 性能漏洞
WinLogonInit 期间许多操作并行发生。在许多系统上,此子阶段受 CPU 限制并且具有大量 I/O 需求。在此阶段启动的服务的良好公民身份对于优化启动时间至关重要。服务可以声明依赖关系或使用加载顺序组来确保它们以特定顺序启动。Windows 按顺序处理加载顺序组。早期加载顺序组中的服务初始化延迟会阻止后续加载顺序组,并可能阻止启动过程。
就你的情况而言,这不是 CPU 或磁盘的问题。延迟来自输入密码(RequestCredentials 需要 16 秒)。
接下来用户本身的登录也需要 4 秒:
你现在用的是微软账号吗?可能是网络不够稳定导致延迟。