#include <iostream>
#include <chrono>
#include <thread>
#include <string>
//通过生命周期的方式进行计时
struct Timer
{
std::chrono::steady_clock::time_point start, end;
std::chrono::duration<float> duration;
int FuncID = -1;
Timer()
{
start = std::chrono::high_resolution_clock::now();
}
~Timer()
{
end = std::chrono::high_resolution_clock::now();
duration = end - start;
float ms = duration.count() * 1000.0f;
std::cout << "FuncID:" << FuncID << " Timer took " << ms << "ms" << std::endl;
}
};
void Function()
{
Timer timer;
timer.FuncID = 0;
for (int i = 0; i < 100; i++)
std::cout << "Hello" << std::endl;
}
int main()
{
Function();
std::cin.get();
}
本文是学习@Cherno大佬的CPP视频过程中跟着一起敲敲代码,权作记录
在Struct Timer中定义构造函数和析构函数,构造的时候获取一次当前时间,析构的时候也获取一次当前时间,并计算两次时间的差,即可获取该段时间。
在函数中构造该Timer,函数执行完成时Timer被析构,计时自动完成。