多核CPU环境下QueryPerformanceFrequency函数的使用与注意事项

2024-12-25
来源:网络整理

以前写游戏的时候,习惯用来做高精度的定时器。 SDK自带的DXUT之一就是这样使用的。许多应用程序都是基于高精度定时器构建的。定时器的准确度在一定程度上会影响游戏帧率的准确性和稳定性。

但请注意,该函数在多核 CPU 上很棘手:

论一,又不是。 ,由于 / (BIOS) 或 (HAL) 中的错误,您可以继续使用。要表示 ,请使用 .(MSDN)

QPF 还可能会遇到前回滚问题(可能会跳跃),并且可能在某些操作系统(在 2000 年、2003 年和 XP 中使用该术语)上表现不佳。这些无疑给了界面漂亮、看上去好用的QPF一记耳光——住手!

游戏计时器app_游戏计时器_计时器游戏种子

我自己的AMD双核CPU在ter函数的实现中存在上述BUG!只有打上“AMD双核”补丁后才能正常工作。

游戏一般是在没有管理员权限的情况下部署的,因此无法保证补丁已经应用到玩家的机器上,用户在安装时可能会遇到权限问题。

这是获得高精度时间的另一种方式。 NT和2000系统以后,该方法默认精度为5ms,可以通过and将精度调整为1ms。

那么为什么精度只能达到1ms呢?

“IBM-PC最初设计时,主板上使用的是14.晶振,这是当时PC上最高的时钟频率。这个晶振被除以12,作为定时器/定时器的输入。计数器,也就是1.为了保持兼容,这个1.一直存在,直到现在的主板也是如此(不管它是如何生产的),那个14.不一定再存在了,这就是为什么这个。通常会在此时返回号码。频率,授时的最高准确度是”(CSDN)

综上所述:

暂时放弃该方法。

游戏计时器_游戏计时器app_计时器游戏种子

说明比较高级,所以我现在还不敢用,我想我也不会用。

首先选择1ms精度定时器。

分享