-2

我有一个任务要求我测量几个程序的确切运行时间。我不知道该怎么做,但我认为它与 time_start(); 正如我在互联网上看到的那样。time_start(); 是什么?意思是,我如何使用它来测量运行时间?我正在使用 Windows 7 和 Dev C++ 编译器

谢谢

4

1 回答 1

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()在开始时调用并在结束时再次调用,并取两个值之间的差。

于 2013-07-19T05:57:56.753 回答