#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <WinBase.h>
#include <WinNT.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
// DWORD start_time = GetTickCount();
// int k = 0;
// for ( int i=0;i<1000000;++i)
// {
// ++k;
// }
// DWORD end_time=GetTickCount();
//
// DWORD start_time1 = GetTickCount();
// int p = 0;
// for ( int i=0;i<1000000;i++)
// {
// p++;
// }
// DWORD end_time1=GetTickCount();
// cout<<"The (++k) run time is:"<<(end_time-start_time)<<"ms!"<<endl;//输出运行时间
// cout<<"The (p++) run time is:"<<(end_time1-start_time1)<<"ms!"<<endl;//输出运行时间
LARGE_INTEGER litmp;
LONGLONG QPart1, QPart2;
LONGLONG QPart11, QPart12;
double dfMinus, dfFreq, dfTim;
double dfMinus1, dfTim1;
int k = 0;
QueryPerformanceFrequency(&litmp);//获取CPU时钟频率
dfFreq = (double)litmp.QuadPart;
//------------------
QueryPerformanceCounter(&litmp); //获取开始计数值
QPart1 = litmp.QuadPart;
k = 0;
for ( int i=0;i<1000000;i++)
{
k++;
}
QueryPerformanceCounter(&litmp); //获取结束计数值
QPart2 = litmp.QuadPart;
//------------------
QueryPerformanceCounter(&litmp); //获取开始计数值
QPart11 = litmp.QuadPart;
k = 0;
for ( int i=0;i<1000000;i++)
{
++k;
}
QueryPerformanceCounter(&litmp); //获取结束计数值
QPart12 = litmp.QuadPart;
dfMinus = (double)(QPart2-QPart1);
dfTim = dfMinus/dfFreq;
dfMinus1 = (double)(QPart12-QPart11);
dfTim1 = dfMinus1/dfFreq;
cout<<"The (k++) run time is:"<< dfTim <<"ms!"<<endl;//输出运行时间
cout<<"The (++k) run time is:"<< dfTim1 <<"ms!"<<endl;//输出运行时间
while (1)
{
if ( getchar() == 'a')
{
return 0; //只有输入A才会返回、退出
}
}
return 0;
}
c++高精度计时
最新推荐文章于 2024-06-27 21:57:03 发布