📜  c++ 以微秒为单位测量时间 - C++ (1)

📅  最后修改于: 2023-12-03 15:13:59.184000             🧑  作者: Mango

C++ 以微秒为单位测量时间

在编写程序时,经常需要测量代码的执行时间。C++提供了测量时间的库函数,其中以微秒为单位测量时间的函数是比较常用的。

使用chrono库测量时间

C++11引入了chrono库,其中提供了很多时间相关的类和函数。我们可以使用chrono库中的high_resolution_clock类来测量时间,该类提供了最高精度的计时器。

先来看一个示例代码,演示如何使用chrono库测量代码执行时间:

#include <iostream>
#include <chrono>

using namespace std;

int main()
{
    auto start = chrono::high_resolution_clock::now(); // 开始计时
    // 这里写需要测量时间的代码
    for (int i = 0; i < 1000000000; ++i);

    auto end = chrono::high_resolution_clock::now(); // 结束计时
    auto duration = chrono::duration_cast<chrono::microseconds>(end - start); // 计算时间差

    cout << "Time taken by function: " << duration.count() << " microseconds" << endl;

    return 0;
}
解析示例代码

首先,我们包含了<iostream><chrono>头文件。然后,在main()函数中定义了一个startend变量,分别用于记录开始和结束时间。使用high_resolution_clock::now()获取当前时间。

在调用需要测量时间的函数之前记录时间,函数执行完毕之后记录时间,然后通过end - start计算时间差,最后使用duration_cast<chrono::microseconds>将时间差转换成微秒单位。最后打印计算出来的结果。

输出结果如下:

Time taken by function: 49 microseconds
总结

使用chrono库测量C++代码执行时间非常简单,只需要使用high_resolution_clock类记录开始和结束时间,在需要测量时间的代码之前和之后调用相应的函数即可。