在open cv中运行代码的时间?

时间:2014-03-10 08:47:37

标签: visual-c++ opencv

我正在开放CV。代码是用c ++编写的。我想找出程序执行所花费的时间。这只是一个基本问题。

2 个答案:

答案 0 :(得分:2)

有很多方法可以做到这一点(见Easily measure elapsed time)。一个简单的方法如下:

#include <time>

void main()
{
    clock_t start_time = clock();
    // Do something
    clock_t end_time = clock();
    float time_in_seconds = (end_time-start_time)/(float)CLOCKS_PER_SEC;
}

答案 1 :(得分:1)

您有几种选择:

  • 对您的程序进行概要分析,这意味着在一个特殊设置中运行它,该设置将使用定时探针修改和/或监控您的代码,并报告有关代码函数/行花费的时间的统计信息。由于您使用的是Visual Studio,根据您的版本,您可以尝试its integrated profiler或尝试使用英特尔VTune或AMD CodeAnalyst

  • 手动添加代码以在代码中的特定点进行时间测量。在C ++和Windows中,一种简单而准确的方法是QueryPerformanceCounter来自<windows.h>。它比clock更准确,并且不如CPU的性能计数器准确,但在多核系统中更难以利用它们。

第二个选项的示例:

// init
#include <Windows.h>
LARGE_INTEGER freq;
QueryPerformanceFrequency(&freq);
double milliseconds = 1000.0 / freq.QuadPart;

// timed execution
LARGE_INTEGER start, stop;
QueryPerformanceCounter(&start);
call_your_function();
QueryPerformanceCounter(&stop);
double time_in_ms = (stop.QuadPart - start.QuadPart) * milliseconds;