我正在开放CV。代码是用c ++编写的。我想找出程序执行所花费的时间。这只是一个基本问题。
答案 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;