增加c ++中的时间分辨率

时间:2014-08-07 08:47:59

标签: c++ visual-studio

我正在制作一段代码,告诉我代码块的时间是多少?#34;采取执行。 我解决这个问题的方法是创建两个timer_t实例,给第一个实例提供当前时间的开始执行#34;代码块"然后在第二个实例完成执行时给出当前时间。然后我将两个实例的差异计算出运行时间。 代码如下所示:(使用Visual Studio)

#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
#include<iostream>
#include<Windows.h>
#include<stdlib.h>
#include<time.h>


using namespace std;



int _tmain(int argc, _TCHAR* argv[])
{


    srand((unsigned)time(NULL));


    for(int i=0;i<10;i++)
    {
        cout<<rand()%100<<endl;
    }



    cout<<endl;
    time_t timernow,timerthen;

    timernow=time(NULL);
    Sleep(300);
    timerthen=time(NULL);

    cout<<"Elapsed time: "<<timerthen-timernow;

    _getch();



    return 0;
}

但问题是它只给我几秒钟的时间(在这种情况下为0而不是0.3)但是我希望时间以毫秒左右为单位。是否有可能提高分辨率/时间精度? 谢谢。

1 个答案:

答案 0 :(得分:2)

使用<chrono>。它具有时间测量功能,包括high precision clockduration_cast