c++ 获取操作的精确时间

2015-07-01 0 946
c++ 获取操作的精确时间

有很多时候为了测试效率问题,我们需要对时间的精确掌控,mfc给我们封装的时间函数就满足不了我们的需求了。

这时候需要使用下面两个函数

BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);

BOOL QueryPerformanceCounter (LARGE_INTEGER *lpCount);

第一个函数:返回硬件支持的高精度计数器的频率。

第二个函数:得到高精度计时器的值

#include <iostream>
#include <windows.h>
using namespace std;
 
int main()
{
    LARGE_INTEGER Frequency;//计数器频率
    LARGE_INTEGER start_PerformanceCount;//起始计数器
    LARGE_INTEGER end_PerformanceCount;//结束计数器
    double run_time; //运行时间
    QueryPerformanceFrequency(&Frequency);
     
    for (int i = 0 ; i < 10 ; ++i )
    {
         
        QueryPerformanceCounter(&start_PerformanceCount);
         
        //运行测试的代码
        Sleep(10);
         
        QueryPerformanceCounter(&end_PerformanceCount);
        run_time = ( end_PerformanceCount.QuadPart - start_PerformanceCount.QuadPart ) / (double)Frequency.QuadPart;
        cout<<run_time<<endl;
    }
     
    return 0;
}

遇见资源网 c/c++ c++ 获取操作的精确时间 http://www.ox520.com/10248.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务