Tic/Toc统计程序运行时间的方法在matlab中见过,最近在学习VINS的过程中也见到了,摘抄如下:
#pragma once
#include <ctime>
#include <cstdlib>
#include <chrono>
class TicToc
{
public:
TicToc()
{
tic();
}
void tic()
{
start = std::chrono::system_clock::now();
}
double toc()
{
end = std::chrono::system_clock::now();
std::chrono::duration<double> elapsed_seconds = end - start;
return elapsed_seconds.count() * 1000;
}
private:
std::chrono::time_point<std::chrono::system_clock> start, end;
};
深入理解std::chrono的时钟Clock
:
https://www.cnblogs.com/zhongpan/p/7490657.html
std::chrono是C++11引入的日期时间处理库,其中包含3种时钟:system_clock,steady_clock,high_resolution_clock。
近来需要使用高精度时间,很自然想到使用high_resolution_clock,然而使用后发现并非预期的得到自1970/1/1零点之后的计数,而是一个小得多的数字。
那么这三种时钟有什么区别,用在什么情况下,我们来一探究竟。
版权声明:本文为chengde6896383原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。