我有一个任务要求我测量几个程序的确切运行时间。我不知道该怎么做,但我认为它与 time_start(); 正如我在互联网上看到的那样。time_start(); 是什么?意思是,我如何使用它来测量运行时间?我正在使用 Windows 7 和 Dev C++ 编译器
谢谢
“精确”的时间测量需要使用操作系统的特定功能。
在 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()
在开始时调用并在结束时再次调用,并取两个值之间的差。