用C测量精确的运行时间

时间:2013-07-19 05:39:16

标签: c runtime measure

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

谢谢

1 个答案:

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