如何在C++中测量经过的时间

如何在C++中测量经过的时间

测量经过的时间是大多数软件开发包的常见需求。它用于确定程序的效率,并给出程序的哪些部分花费了多长时间的想法。这有助于优化代码,从而提高其执行时间。在本文中,您将学习如何在C++中测量经过的时间。

需要使用chronos头文件中的high_resolution_clock::now函数进行操作。 该头文件可能不存在于旧版本的GCC中。

测量经过的时间

为了测量经过的时间,需要收集两个时间戳。一个在代码开始时收集,另一个在结束时收集。然后我们将从两个时间戳中减去,两者之间的时间差将为我们提供经过的时间。

// C++程序演示
// 测量经过的时间
#include <chrono>
#include <iostream>
 
using namespace std::chrono;
 
int main()
{
 
    // 记录代码开始时的时间戳
    auto beg = high_resolution_clock::now();
 
    // 实际程序代码在此之下进行
    //为演示而运行一个从0到50000的循环
    for (int i = 0; i < 50000; i++)
        continue;
 
    // 在代码运行后获取一个时间戳
    auto end = high_resolution_clock::now();
 
    // 从开始时间戳中减去结束时间戳
    // 并选择以毫秒为单位接收差异
    auto duration = duration_cast<microseconds>(end - beg);
 
    // 显示经过的时间
    std::cout << "经过的时间: " << duration.count();
    return 0;
}  

输出:

经过的时间: 116

说明: 导入相关头文件。在主代码的开始位置,通过调用high_resolution_clock::now函数来获取一个时间戳,并将其存储在变量beg中。之后,实际要测量耗时的代码应该来了。为演示,从0到50000运行一个循环,循环体内不做任何事情。这是为了产生需要一定时间的事件。然后再次调用high_resolution_clock::now函数,并将返回数据存储在变量end中。

接下来,获取 endbeg 之间的差异,并将结果强制转换为毫秒精度,使用语句 duration_cast <microseconds>(end – beg)_。这给出了时钟函数第一次调用和最后一次调用之间所花费的时间。最后,使用 count函数来显示经过的时间。

注意: 之所以选择毫秒作为精度,是因为大多数计算机能够在一秒钟内执行此类琐碎任务(如循环)。因此,如果精度选择为秒,则最终得到的经过的时间为0。因此,为了演示效果,选择毫秒。这可以通过将角括号中的微秒更改为您选择的时间帧来更改为其他时间精度。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程