转自:http://www./2016/08/23/pclbianchengbaodian-jisuandaimayunxingshijian/ 有时需要计算代码运行的时间,使用PCL里的StopWatch类以及ScopeTime类可以实现这个功能。具体用法如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #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);
}
|
输出结果为:
代码1
运行时间:57微妙
运行时间:0.058毫秒
代码2
运行时间:539微妙
运行时间:0.54毫秒
代码3
运行时间: took 54ms.
上面这段代码上,分别使用了StopWatch类以及ScopeTime类来计算代码运行时间。这里对ScopeTime类进行详细讲解,从代码里可以看到其并没有使用像StopWatch类直接调用getTime或getTimeSeconds,但是依然可以计算得到代码运行时间。这里解释一下原因,StopWatch类在计算的是类创建到析构的时间,定义类的新实例scope_time时开始计时,然后到scope_time开始析构时,输出代码运行时间。所以使用ScopeTime类时需要一个{}把代码和StopWatch包括起来。
|