您的位置:首页 > 编程语言 > C语言/C++

C++计时器

2015-07-03 10:15 330 查看
本文主要介绍:C++中对运行程序进行计时。

一、计时程序

.h文件:

#pragma once
#include <windows.h> //头文件

typedef struct
{
LARGE_INTEGER start;
LARGE_INTEGER stop;
} stopWatch;

class CHRTimer
{

private:
stopWatch timer;
LARGE_INTEGER frequency;
double LIToSecs( LARGE_INTEGER & L);
public:
CHRTimer();
void startTimer( );
void stopTimer( );
double getElapsedTime();
};


.cpp文件:

#include "StdAfx.h"
#include "HRTimer.h"

double CHRTimer::LIToSecs( LARGE_INTEGER & L)
{
return ((double)L.QuadPart /(double)frequency.QuadPart);
}

CHRTimer::CHRTimer()
{
timer.start.QuadPart=0;
timer.stop.QuadPart=0;
QueryPerformanceFrequency( &frequency );
}

//开始计时
void CHRTimer::startTimer( )
{
QueryPerformanceCounter(&timer.start);
}

//停止计时
void CHRTimer::stopTimer( )
{
QueryPerformanceCounter(&timer.stop);
}

//获取运行时间
double CHRTimer::getElapsedTime() {
LARGE_INTEGER time;
time.QuadPart = timer.stop.QuadPart - timer.start.QuadPart;
return LIToSecs( time) ;
}


二、计时器计时

1.工程中添加上面.h和.cpp文件;

2.启动计时器及计时程序:

int sum=0;
CHRTimer timer;
timer.startTimer();//开始计时

for(int i=0;i<65665201;i++)
++sum;

timer.stopTimer();//停止计时

double time = timer.getElapsedTime(); //获取运行时间

cout<<"总共耗时:"<<time<<endl;


上段程序运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: