根据机器的不同精度也不同,多线程平台受其它程序影响较大
测试平台:windows xp 开发环境vs2005
源代码:
#include "stdafx.h"
#include"windows.h"
int _tmain(int argc, _TCHAR* argv[])
{
double dft,dff,dfm; //用于计算时间的变量
LARGE_INTEGER litmp;
long long qt1,qt2; //存放时间的变量
QueryPerformanceFrequency(&litmp);//获得时钟频率
dff=(double)litmp.QuadPart;
QueryPerformanceCounter(&litmp);//获得初始值
qt1=litmp.QuadPart;
for(int i=6000;i--;);//测试的程序
QueryPerformanceCounter(&litmp);//获得终止值
qt2=litmp.QuadPart;
dfm=(double)(qt2-qt1);//获得对应的时间值
dft=dfm/dff;
printf("时间:%lf\n",dft);//输出时间单位秒
printf("周期:%lf\n",dfm); //输出程序所用周期
printf("周期每秒:%lf\n",dff);//输出时钟周期
return 0;
}
测试平台:windows xp 开发环境vs2005
源代码:
#include "stdafx.h"
#include"windows.h"
int _tmain(int argc, _TCHAR* argv[])
{
double dft,dff,dfm; //用于计算时间的变量
LARGE_INTEGER litmp;
long long qt1,qt2; //存放时间的变量
QueryPerformanceFrequency(&litmp);//获得时钟频率
dff=(double)litmp.QuadPart;
QueryPerformanceCounter(&litmp);//获得初始值
qt1=litmp.QuadPart;
for(int i=6000;i--;);//测试的程序
QueryPerformanceCounter(&litmp);//获得终止值
qt2=litmp.QuadPart;
dfm=(double)(qt2-qt1);//获得对应的时间值
dft=dfm/dff;
printf("时间:%lf\n",dft);//输出时间单位秒
printf("周期:%lf\n",dfm); //输出程序所用周期
printf("周期每秒:%lf\n",dff);//输出时钟周期
return 0;
}