kadu
kadu

Reputation: 513

Run time of code in open cv?

I am working on open CV.The code is written in c++.I want to find out the time taken by the program to execute.its just a basic question.

Upvotes: 0

Views: 173

Answers (2)

Antoine
Antoine

Reputation: 14074

You have several options:

  • profile your program, that means run it in a special setting which will modify and/or monitor your code with timing probe and report statistics about how much time is spent in functions / lines of codes. Since you're using Visual Studio, depending on your version you could try its integrated profiler or try something like Intel VTune or AMD CodeAnalyst

  • manually add code to take time measurements at specific points in your code. In C++ and windows, an easy and accurate way of doing that is QueryPerformanceCounter from <windows.h>. It's more accurate than clock and less accurate than CPU's performance counters, but these are harder to exploit in a multi-core system.

Example for second option:

// 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;

Upvotes: 1

BConic
BConic

Reputation: 8980

There are lots of ways to do that (see Easily measure elapsed time). A simple approach is the following:

#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;
}

Upvotes: 2

Related Questions