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;
}

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页