Timer resolution in windows XP

本文探讨了Windows操作系统中不同计时器的分辨率及应用。指出GetTickCount()已过时,建议使用GetSystemTimeAdjustment()获取更高精度。对于需要极高精度的应用场景,推荐使用QueryPerformanceFrequency和QueryPerformanceCounter,其精度可达纳秒级。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Many articles said that the resolution of GetTickCount() is 55ms. It is obsolete for windows XP. We should use GetSystemTimeAdjustment() to retrieve the resolution. For Windows XP on a P4 computer, it is 15.6250 ms.

For high-resolution timer, we could use QueryPerformanceFrequency and QueryPerformanceCounter. The sample code is similar to the following:

LARGE_INTEGER Frequency;
QueryPerformanceFrequency(&Frequency);

LARGE_INTEGER beginPerformanceCount, endPerformanceCount;   // counter value

QueryPerformanceCounter(&beginPerformanceCount);

// Do something

QueryPerformanceCounter(&endPerformanceCount);

double valinSec = (double)(endPerformanceCount.QuadPart -  beginPerformanceCount.QuadPart)  /  (double)Frequency.QuadPart;

Its solution could be less than 1 nanosecond.

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值