在写程序时,特别是执行算法步骤时,经常需要记录某段代码的执行时间。
今天发现一个比之前写的更好的方法,所以在这里记录一下。
之前自己写的:https://blog.csdn.net/xiaonuo911teamo/article/details/110037590
实现思路和特点
思路:利用类的构造,记录开始时间点,利用类的析构,记录结束时间点,并完成输出。
特点:使用方便,封装度高。
头文件
就一个TimerCounter。构造参数flag,就是要记录时间部分的名字。构造参数enable_cout,表示是否要在标准输出中进行输出。可通过get_time_ms_elapsed函数自行捕获输出。
另外,get_current_us函数,是用来捕获时间的函数,细分的话,不应该放在这个函数中的。可以连同他的头文件,一同放在另一个文件中。
#pragma once
#include <string>
#include <chrono>
#include <iostream>
#include <mutex>
static long get_current_us() {
auto now = std::chrono::