C++计时器

本文主要介绍: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;

上段程序运行结果:
C++计时器_第1张图片

你可能感兴趣的:(程序员,计时,C++计时,对程序计时,CHRTimer)