Windows 中如何获取开关机时间
Windows 上,开关机时间对用户体验影响非常大。获取到每次开机总时间和阶段耗时,有利于我们了解系统瓶颈,方便后续进行改善。 借助于 Windows 强大的诊断能力,Windows 自身借助 ETW 就已经统计了开关机的时间,这样我们获取开关机时间就非常简单了。 具体的数据就在 Microsoft Windows D
Windows 上,开关机时间对用户体验影响非常大。获取到每次开机总时间和阶段耗时,有利于我们了解系统瓶颈,方便后续进行改善。
借助于 Windows 强大的诊断能力,Windows 自身借助 ETW 就已经统计了开关机的时间,这样我们获取开关机时间就非常简单了。
具体的数据就在 Microsoft-Windows-Diagnostics-Performance/Operational 这个 Provider 里了。
接下来,我们看看具体的信息
关机时间#
针对关机时间,其会通过事件 ID 为 200 的一个事件来将中间过程汇总:
打开事件查看器,找到 Microsoft-Windows-Diagnostics-Performance/Operational 中的一个 200 的事件:

详情中,我们可以看到 EventData 中包含多个字段。以下是关于这些字段的解释:
开机时间#
针对关机时间,其会通过事件 ID 为 100 的一个事件来将中间过程汇总:
打开事件查看器,找到 Microsoft-Windows-Diagnostics-Performance/Operational 中的一个 200 的事件:

详情中,我们可以看到 EventData 中包含多个字段。以下是关于这些字段的解释:
简要分析:
- BootTime 大致等于 (BootEndTime - BootStartTime)
- BootTime 可以被分成 MainPathBootTime + BootPostBootTime 这两个大的阶段。
- MainPathBootTime 包含 核心驱动和设备初始化、Session Manager(SMSS.exe)初始化、WinLogon/用户会话初始化等关键步骤。但不包括在 Explorer.exe 加载完成后、系统在后台继续加载的各种延迟启动或非关键启动项的时间(这部分会统计在 PostBootTime 中)
- 其余字段多是分段耗时或标志位,可能存在一定的交叉或重叠。
由于开机流程中存在多线程并行、异步初始化(例如服务、驱动、进程等同时进行),并且系统记录时可能会在不同的事件点采样,因此并不是所有字段都能用一个“加法公式”严丝合缝地对上。相互之间更适合用来做趋势分析或定位瓶颈,而非做绝对数值的严谨对比。
还没有评论。下面留下第一条吧。