Windows 7 计时函数:了解 GetSystemTimeAdjustment
正如您所观察到的,在 Windows 7 上使用 GetSystemTimeAdjustment 函数的结果可能会令人费解。为了更好地理解,让我们解决您的问题:
问题 1:假设的正确性
您的假设总体上是正确的。如果系统时间定期同步,您可能会期望没有变化或变化是从 GetSystemTimeAdjustment 获取的增量的倍数。
问题 2:差异原因
您遇到的差异是由于 GetSystemTimeAsFileTime 提供的系统时间粒度可能并不总是与 GetSystemTimeAdjustment 报告的实际更新间隔一致。
说明:
GetSystemTimeAsFileTime 提供对系统挂钟(以 100ns 为单位)的访问。然而,系统时间的实际更新速率可能会根据硬件因素和多媒体计时器接口的设置而有所不同。
在您的情况下,NtQueryTimerResolution 报告的更新周期约为 25μs,而 GetSystemTimeAdjustment 表示调整15.6 毫秒。这表明系统时间的更新频率比实际同步的频率更高。
含义:
这意味着在时间戳循环中观察到的更改不仅仅是由于正在进行时间调整。相反,它们反映了系统时间的底层更新,这些更新以更高的频率发生。
推荐方法:
不要依赖 GetSystemTimeAdjustment 进行精确计时,而是考虑使用NtQueryTimerResolution来确定系统时间的实际更新间隔。这将更准确地表示系统的计时行为。
以上是## 为什么 GetSystemTimeAdjustment 并不总是反映 Windows 7 上的真实时间调整?的详细内容。更多信息请关注PHP中文网其他相关文章!