找到c ++执行时间

Cpp*_*ner 5 c++

我很好奇C++中是否有用于测量执行时间的内置函数?我目前正在使用Windows.在Linux中它很容易......

Col*_*nee 4

据我所知,Windows 上最好的方法是使用QueryPerformanceCounterQueryPerformanceFrequency

QueryPerformanceCounter(LARGE_INTEGER*)将性能计数器的值放入传递的 LARGE_INTEGER 中。

QueryPerformanceFrequency(LARGE_INTEGER*)将性能计数器递增的频率放入传递的 LARGE_INTEGER 中。

然后,您可以通过在执行开始时记录计数器,然后在执行完成时记录计数器来找到执行时间。从末尾减去开始以获得计数器的变化,然后除以频率以获得以秒为单位的时间。

LARGE_INTEGER start, finish, freq;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&start);
// Do something
QueryPerformanceCounter(&finish);
std::cout << "Execution took " 
    << ((finish.QuadPart - start.QuadPart) / (double)freq.QuadPart) << std::endl;
Run Code Online (Sandbox Code Playgroud)