我想知道C++中是否有一种内置的函数可以测量执行时间? 目前我正在使用Windows系统。在Linux系统中很容易实现...
QueryPerformanceCounter
和QueryPerformanceFrequency
函数。
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;
C++没有内置的函数用于高粒度测量代码执行时间,你必须使用特定于平台的代码。针对Windows,请尝试使用QueryPerformanceCounter:http://msdn.microsoft.com/en-us/library/ms644904(VS.85).aspx
http://www.geisswerks.com/ryan/FAQS/timing.html
这篇文章提到: