RDTSC与QueryPerformanceCounter

本文介绍了RDTSC汇编指令和QueryPerformanceCounter API在计算时间间隔上的区别和应用。RDTSC提供CPU周期数,但因CPU频率变化而不适合精确计时;而QueryPerformanceCounter结合QueryPerformanceFrequency可获取高精度时间间隔。QueryPerformanceFrequency返回的固定频率用于计数,只在程序初始化时需查询。此外,文中还提及如何使用SetThreadAffinityMask确保RDTSC在单个处理器上运行。
摘要由CSDN通过智能技术生成

1.概述

RDTSC指令属于汇编指令,取得的是CPU的周期数;QueryPerformanceCounter属于WINAPI,取得的是高精度性能计数器的值,MSDN的解释是Retrieves the current value of the performance counter, which is a high resolution (<1us) time stamp that can be used for time-interval measurements.

由于CPU的频率在运行过程中并不是恒定的,所以用RDTSC计算时间间隔并不准确;用QueryPerformanceFrequency配合QueryPerformanceCounter可较准确地得到时间间隔,有了时间间隔,再结合RDTSC得到的CPU周期数,可大致得出CPU频率。

QueryPerformanceFrequency:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值