PCL计算代码运行时间

时间:2021-12-21 20:47:26

文章原地址:http://www.zhangzscn.com/2016/08/23/pclbianchengbaodian-jisuandaimayunxingshijian/

有时需要计算代码运行的时间,使用PCL里的StopWatch类以及ScopeTime类可以实现这个功能。具体用法如下:

#include <iostream>
#include <pcl/common/time.h>

int main()
{
pcl::StopWatch time;

//代码1
int loopNum = 1000000;
for (size_t i = 0; i < loopNum; ++i)
{
std::cout << "";
}

//得到时间
std::cout << "代码1" << std::endl;
std::cout << "运行时间:" << time.getTime() << "毫秒" << std::endl;
std::cout << "运行时间:" << time.getTimeSeconds() << "秒" << std::endl;

//重置
time.reset();

//代码2
for (size_t i = 0; i < loopNum * 10; ++i)
{
std::cout << "";
}

//得到时间
std::cout << "代码2" << std::endl;
std::cout << "运行时间:" << time.getTime() << "毫秒" << std::endl;
std::cout << "运行时间:" << time.getTimeSeconds() << "秒" << std::endl;


{
std::cout << "代码3" << std::endl;
pcl::ScopeTime scope_time("运行时间:");

//代码3
for (size_t i = 0; i < loopNum; ++i)
{
std::cout << "";
}
}

return (0);
}

上面这段代码上,分别使用了StopWatch类以及ScopeTime类来计算代码运行时间。这里对ScopeTime类进行详细讲解,从代码里可以看到其并没有使用像StopWatch类直接调用getTime或getTimeSeconds,但是依然可以计算得到代码运行时间。这里解释一下原因,StopWatch类在计算的是类创建到析构的时间,定义类的新实例scope_time时开始计时,然后到scope_time开始析构时,输出代码运行时间。所以使用ScopeTime类时需要一个{}把代码和StopWatch包括起来。