偶然要测试程序每秒处理数据条数,即处理数据效率。这里用了最笨的方法,程序执行前后,打点,取时间。计算两次打点的时间差。用总数据条数 / 时间差,得到效率、
所以需要求时间差。这里自己总结记录下来,希望能对需要的人有帮助。
windows:
#include 其他头文件自己加。
int main()
{
double Diff_time=0;//时间差
LARGE_INTEGER Freg;
LARGE_INTEGER Count1,Count2;
QueryPerformanceFrequency(&Freg);
/*************获取时间起点*************/
QueryPerformanceCounter(&Count1);
int i=0;
for(i=0;i<100000;++i)
{
i%2;
}
/*************获取时间终点*************/
QueryPerformanceCounter(&Count2);
Diff_time=(double)(Count2.QuadPart-Count1.QuadPart)/(double)Freg.QuadPart*1000.0;//计算时间差,d的单位为ms.
cout<
cout<
return 0;
}
Linux:
#include 其他头文件自己加
int main()
{
timeval tBegin, tEnd, Diff_time;
/*************获取时间起点*************/
gettimeofday(&tBegin, 0);
int i=0;
for(i=0;i<100000;++i)
{
i%2;
}
/*************获取时间终点*************/
gettimeofday(&tEnd, 0);
Diff_time.tv_sec=tEnd.tv_sec-tBegin.tv_sec;//秒
Diff_time.tv_usec=tEnd.tv_usec-tBegin.tv_usec;//毫秒
printf("时间 : %d s.\n",Diff_time.tv_sec);
printf("每秒 : %.6f .\n",double(i+1)/Diff_time.tv_sec);
printf("每毫秒 : %.6f .\n",double(i+1)/Diff_time.tv_usec);
return 0;
}