分享

计算代码运行时间

 Y忍冬草 2017-07-12

转自: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包括起来。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多