做图像处理算法时,免不了要测量函数的运行时间。以前我都是使用OpenCV的计时函数cv::getTickCount()
和cv::getTickFrequency()
,但是这样一来,在不使用OpenCV的项目中就没法用了。幸好C++11增加了std::chrono
库,可以很方便地实现跨平台的时间测量。于是我封装了一个简单的计时器类,这样只要将其简单地添加到项目中,就可以直接使用了。此计时器单位为毫秒,但可以精确到微秒级。
#include <iostream>
#include <chrono>
class Timer
{
public:
Timer()
: t1(res::zero())
, t2(res::zero())
{
tic();
}
~Timer()
{}
void tic()
{
t1 = clock::now();
}
void toc(const char* str)
{
t2 = clock::now();