我一直在试图为我的游戏创建一个计时器,并且我听说过QueryPerformanceCounter和QueryPerformanceFrequency。有人能解释一下如何用这些来计算游戏循环中的时间/ fps /滴答?C++ QueryPerformanceCounter和QueryPerformanceFrequency
-1
A
回答
11
Microsoft支持拥有知识库文章明确这一点:
How To Use QueryPerformanceCounter to Time Code
基本上你使用QueryPerformanceCounter
之前,你想不想来一次活动后获得高分辨率定时器的值。
然后使用QueryPerformanceFrequency
来获得每秒的滴答数。将时间差值除以该值以将该值转换为秒。
+0
嘿..缺乏研究... ...我不知道如何谷歌获得结果,我赢了...谢谢寻求帮助 – 2011-05-19 08:52:31
5
LARGE_INTEGER m_liPerformanceFrequency;
QueryPerformanceFrequency(&m_liPerformanceFrequency);
//...
LARGE_INTEGER liPerformanceCount;
QueryPerformanceCounter(&liPerformanceCount);
double dTime = double(liPerformanceCount.QuadPart)/double(m_liPerformanceFrequency.QuadPart);
相关问题
- 1. 使用QueryPerformanceFrequency()和QueryPerformanceCounter()将我的C++代码转换为C#?
- 2. GetSystemTimePreciseAsFileTime和QueryPerformanceCounter
- 3. 有人可以解密timeGetTime()或QueryPerformanceCounter/QueryPerformanceFrequency是否具有较低的开销或/和准确性?
- 4. C linux等价于windows QueryPerformanceCounter
- 5. std :: chrono反复调用QueryPerformanceFrequency?
- 6. QueryPerformanceCounter状态?
- 7. VBA QueryPerformanceCounter不工作
- 8. QueryPerformanceCounter()与QueryInterruptTime()vs KeQueryInterruptTime()
- 9. QueryPerformanceCounter或GetSystemTimePreciseAsFileTime使用SNTP时?
- 10. QueryPerformanceCounter的运行时错误
- 11. QueryPerformanceCounter在后台进程
- 12. QueryPerformanceCounter的返回负数
- 13. QueryPerformanceCounter对性能的影响
- 14. 等效于QueryPerformanceCounter的多平台?
- 15. 获取另一个进程'QueryPerformanceCounter()
- 16. .NET QueryPerformanceCounter打印白天时间
- 17. 如何从C#中的QueryPerformanceCounter获取蜱虫?
- 18. 从QueryPerformanceCounter()计算周期/字节
- 19. 为什么我相比,无论(QTIME和QueryPerformanceCounter的)
- 20. 在VB.NET中间隔使用QueryPerformanceCounter
- 21. 如何caluate CPU周期为的QueryPerformanceCounter的
- 22. C#取代PerformanceCounter
- 23. 获取时间C++
- 24. 如何使用C++中的unsigned long long int类型来表示某个秒数(分钟)
- 25. 一个游戏的C++定时器
- 26. C GetTickCount(windows函数)到时间(纳秒)
- 27. C#串行端口提高性能降低
- 28. QueryPerformanceCounter是否保证自启动以来给你时间?
- 29. 将Wireshark的时间戳记与:: QueryPerformanceCounter的返回值相关联
- 30. 如何将QueryPerformanceCounter转换为Unix纳秒(时代)
你应该知道,BIOS/HAL在许多PC不打扰同步跨越核/ CPU上的计数器,所以在不同的内核采集的样本不仅反映经过的时间,而且恒定的增量。通过一些工作,您可以在程序启动时计算这些delta,并使用CPUID指令更正时序。此外,使用这些时钟周期计数器改变其速度的CPU会自适应地阻止时序。 – 2011-05-17 06:55:24
http://stackoverflow.com/questions/1739259/how-to-use-queryperformancecounter – DuckMaestro 2012-01-23 08:13:27