VC++获取CPU时钟频率

先通过执行两条汇编语句得到执行两条汇编语句所使用的相对时间刻度,然后继续执行这两条汇编语句获取一个时间刻度减去先前的相对时间刻度就是CPU时钟频率。

inline UINT64 CGetCPUTimeDlg::GetCount()
{
	_asm _emit 0x0f;
	_asm _emit 0x31;
}

 

// 获取CPU时钟频率
CString CGetCPUTimeDlg::GetCPUTime()
{
	CString strCPUTime;

	UINT64 start, end;
	LONG ticks, ticksextra;

	start = GetCount();
	end = GetCount() - start;
	start = GetCount();

	Sleep(1000);
	unsigned cpuSpeed = (unsigned)( (GetCount() - start - end) / 1000 );
	ticks = cpuSpeed / 1000;
	ticksextra = cpuSpeed - (ticks * 100);

	strCPUTime.Format("%ld.%ldMHZ", ticks, ticksextra);
	return strCPUTime;
}

 

VC++获取CPU时钟频率_第1张图片

你可能感兴趣的:(VC++)