搜索HPET,得到的很多结果都与性能优化、性能提升有关,而文章年代大多较早。虽然近两年有文章指出HPET开启后会影响AMD锐龙平台的性能,但英特尔平台其实也会受到影响,直接受害者中包括了固态硬盘!
HPET又名高精度事件计时器,是当前电脑主板都默认开启的一项功能。
在设备管理器中可以看到它的身影:高精度事件计时器。计时器让电脑内的一秒与真实世界中的一秒等同。
某些情况下(部分系统优化软件),HPET高精度计时器会导致电脑性能下降,尤其是会对固态硬盘性能产生显著不利影响,而由于这种故障非常冷门,通常普通用户很难发现原因,更有可能认为是固态硬盘出了问题。下图是正常情况下东芝TR200的AS SSD Benchmark性能跑分(左侧)和出现异常的AS SSD Benchmark跑分(右侧开启了HPET)。
系统中包含多种可用的计时器,HPET是其中精度最高的一个。虽然主板基本都开启了HPET,但操作系统使用何种计时器并不固定。只有个别应用程序会请求指定使用HPET。
使用一款名为WinTimer Tester的软件可以测试当前生效的计时器,下图所示当前使用的是ACPI Timer。计时器频率越高理论上计时越准确,但同时意味着产生更多的CPU中断次数。
CPU处理中断会产生一定延迟,尤其是在英特尔处理器应用幽灵漏洞补丁之后,使用高频率的HPET计时器会对电脑性能产生更显著的影响。下面是正常情况下DPC延迟与使用HPET之后的DPC延迟。
在使用HPET计时器后,与存储子系统相关的storport.sys所反映出的DPC延迟增长了一半。
延迟的增加意味着数据处理速度的放缓,外在表现就是性能降低。此时SSD自身其实速度没有变化,但是电脑整机利用SSD的能力被弱化了。其实当前版本的Windows 10系统默认情况下并不会优先使用HPET计时器,出现HPET问题的大多是由错误的“优化”造成。如果WinTimmer显示为24Mhz(Intel酷睿)或14Mhz(AMD锐龙),可以在命令提示符(管理员)中输入bcdedit /deletevalue useplatformclock,回车后重启电脑即可修复问题。