gpt4 book ai didi

winapi - 什么是高分辨率性能计数器?

转载 作者:行者123 更新时间:2023-12-04 18:49:32 25 4
gpt4 key购买 nike

在 Win32 API 中,有一个函数 QueryPerformanceCounter 可以查询非常高分辨率的性能计时器的值。

什么是“高分辨率性能计时器”?是否有硬件支持?哪些系统不支持?

最佳答案

在当前一代处理器上的 Windows 7 下,这是 CPU (HPET) 内可靠的高精度(纳秒)计时器。

在以前的版本和以前的处理器上,它是“某物”,几乎可以意味着任何东西。最常见的是,它是 RDTSC 指令(或非 x86 上的等效指令)返回的值,它可能可靠也可能不可靠且与时钟无关。请注意,RDTSC(最初,根据定义,但现在不再)不测量时间,它测量周期。

在当前和上一代 CPU 上,RDTSC 通常是可靠且独立于时钟的(即它现在真正测量时间),而在上一代之前,尤其是在移动设备或某些多 CPU 设备上则不然。 “定时器”可能会加速和减速,甚至在不同的CPU上会有所不同,导致“时间旅行”。

编辑: constant tsc cpuid(0x80000007) 中的标志可用于判断 RDTSC 是否可靠(尽管这并不能真正解决问题,因为如果不可靠该怎么办,如果没有其他选择......)。

在较旧的系统(例如 8-10 年)上,一些其他计时器可能用于 QueryPerformanceCounter。那些可能根本没有高分辨率,也不是非常准确。

关于winapi - 什么是高分辨率性能计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8414734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com