我有一项任务要求我测量一些程序的确切运行时间。我不知道该怎么做,但我认为它与time_start()有关;正如我在互联网上看到的那样。什么是time_start();意思是,我如何用它来衡量运行时间?我正在使用Windows 7和Dev C ++编译器
谢谢
答案 0 :(得分:2)
“精确”时间测量需要使用特定于操作系统的功能。
在Windows下,您可能希望使用以下功能:(MSDN)
BOOL WINAPI QueryPerformanceCounter(_Out_ LARGE_INTEGER *lpPerformanceCount);
此功能为您提供自应用程序启动以来的高分辨率滴答计数器。两个滴答之间的间隔取决于您的处理器,可以使用以下函数检索:(MSDN)
BOOL WINAPI QueryPerformanceFrequency(_Out_ LARGE_INTEGER *lpFrequency);
所以这里有一段代码来获取当前时间的精确值,以秒为单位:
double GetCurTime()
{
LARGE_INTEGER CounterFreq;
QueryPerformanceFrequency(&CounterFreq);
LARGE_INTEGER Counter;
QueryPerformanceCounter(&Counter);
return (double)Counter.QuadPart / (double)CounterFreq.QuadPart;
}
因此,要进行时间测量,请在开头调用GetCurTime()
并在结束时再次调用它,并取两个值之间的差异。