WEB开发网
开发学院软件开发C++ c++ 获取操作的精确时间 阅读

c++ 获取操作的精确时间

 2012-10-13 21:06:05 来源:WEB开发网   
核心提示: 使用下面两个函数BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency); BOOL QueryPerformanceCounter (LARGE_INTEGER *lpCount);第一个函数:返回硬件支持的高精度计数器的频率,第二个函数:得到高精度计

 使用下面两个函数
BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);
BOOL QueryPerformanceCounter (LARGE_INTEGER *lpCount);
第一个函数:返回硬件支持的高精度计数器的频率。
第二个函数:得到高精度计时器的值

其使用过程也是相当的简单:
直接看源代码:

#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
	LARGE_INTEGER Frequency;//计数器频率
	LARGE_INTEGER start_PerformanceCount;//起始计数器
	LARGE_INTEGER end_PerformanceCount;//结束计数器
	double run_time; //运行时间
	QueryPerformanceFrequency(&Frequency); 
	
	for (int i = 0 ; i < 10 ; ++i )
	{
		
		QueryPerformanceCounter(&start_PerformanceCount); 
		
		//运行测试的代码
		Sleep(10);
		
		QueryPerformanceCounter(&end_PerformanceCount); 
		run_time = ( end_PerformanceCount.QuadPart - start_PerformanceCount.QuadPart ) / (double)Frequency.QuadPart;
		cout<<run_time<<endl;
	}
	
	return 0;
}

 
 
可以看到,我们平时认为的sleep()函数并不是精确的,
其实sleep()函数受到cpu的影响,但是他的大约值是100ms

Tags:获取 操作 精确

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接