rdtsc 指令测试 cpu 频率

该博客介绍了一种使用rdtsc汇编指令来测试CPU频率的方法。通过设置线程优先级,调用QueryPerformanceFrequency和QueryPerformanceCounter函数获取计数,并在循环中利用rdtsc进行计时,最后计算出CPU频率。代码中还包括了错误检查和清理操作。
摘要由CSDN通过智能技术生成
#include <crtdefs.h>
#include <stdio.h>
#include <windows.h>
#include <mmsystem.h>

#ifdef  __cplusplus
extern "C" {
#endif
	_CRTIMP void __cdecl _wassert(_In_z_ const wchar_t* _Message, _In_z_ const wchar_t* _File, _In_ unsigned _Line);
#ifdef  __cplusplus
}
#endif

#define ENFORCE(_Expression) (void)((!!(_Expression)) || (_wassert(_CRT_WIDE(#_Expression),_CRT_WIDE(__FILE__),__LINE__),0))

int main ( void )
{ 
	unsigned __int64 timeStart64, cpu_fm64;
	unsigned __int32 timeToRDTSC;

	LARGE_INTEGER pfq, lpQFCount;
	ENFORCE(QueryPerformanceFrequency(&pfq));

	ENFORCE ( SetThreadAffinityMask ( GetCurrentThread(), 1 ) );   

	HANDLE CurProcessHandle = GetCurrentProcess();
	HANDLE CurThreadHandle  = GetCurrentThread ();

	DWORD OldPriClassFlags  = GetPriorityClass ( CurProcessHandle );
	DWORD OldPriThreadFlags = GetThreadPriority( CurThreadHandle );

	ENFORCE ( SetPriorityClass ( CurProcessHandle, REALTIME_P
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值