c++高精度计时

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值