关于计算运行时间

由于自己写的代码速度运行过慢,对各个模块进行了测试,之前没有注意,现在发现在进行运算时间计算时也有坑

常用的方式有:                    1. <windows.h>  GetTickCount

                             2.<ctime>     clock()

                             3.qt中<Qtime>   XXX.start    XXXX.elapsed

                             4. opencv          getTickCount

发现如下问题: GetTickCount  有充值为零的风险,而且精度很低,偏差很大

                             opencv 能够精确到 us ,没有进一步验证

                             平常用 clock 即可保证ms级的精度

验证:

    time_t start, end, time;
    DWORD t_start, t_end, t_duration;
    double t = (double)cv::getTickCount();
    QTime QT_time;
    QT_time.start();
    start = clock();
    t_start = GetTickCount();
    cv::Mat a = cv::imread("2.bmp", cv::IMREAD_GRAYSCALE);
    int QT_t=QT_time.elapsed() ;
    end = clock();
    t_end = GetTickCount();
    t = ((double)cv::getTickCount() - t)*1000 / (cv::getTickFrequency() );
    time = end - start;
    t_duration = t_end - t_start;
    ui->textEdit->append(QString("clock  :")+QString::number(time));
    ui->textEdit->append(QString("windows-Gettick  :") + QString::number(t_duration));
    ui->textEdit->append(QString("cv  :") + QString::number(t));
    ui->textEdit->append(QString("QT  :") + QString::number(QT_t));





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值