📅  最后修改于: 2023-12-03 15:13:59.184000             🧑  作者: Mango
在编写程序时,经常需要测量代码的执行时间。C++提供了测量时间的库函数,其中以微秒为单位测量时间的函数是比较常用的。
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()
函数中定义了一个start
和end
变量,分别用于记录开始和结束时间。使用high_resolution_clock::now()
获取当前时间。
在调用需要测量时间的函数之前记录时间,函数执行完毕之后记录时间,然后通过end - start
计算时间差,最后使用duration_cast<chrono::microseconds>
将时间差转换成微秒单位。最后打印计算出来的结果。
输出结果如下:
Time taken by function: 49 microseconds
使用chrono库测量C++代码执行时间非常简单,只需要使用high_resolution_clock
类记录开始和结束时间,在需要测量时间的代码之前和之后调用相应的函数即可。