Microtime()相当于C和C ++?

我想知道在C C ++中是否有相当于PHP函数microtime()的东西。 我环顾四周但找不到明确的答案。

谢谢!

在Linux上,您可以使用gettimeofday ,它应该提供相同的信息。 事实上,我认为这是PHP使用的function。

没有完全等同于PHP的microtime(),但您可以使用基于以下代码的类似function的函数:

Mac OS X,也可能是Linux / Unix

#include  struct timeval time; gettimeofday(&time, NULL); #This actually returns a struct that has microsecond precision. long microsec = ((unsigned long long)time.tv_sec * 1000000) + time.tv_usec; 

(基于: http : //brian.pontarelli.com/2009/01/05/getting-the-current-system-time-in-milliseconds-with-c/ )


视窗:

 unsigned __int64 freq; QueryPerformanceFrequency((LARGE_INTEGER*)&freq); double timerFrequency = (1.0/freq); unsigned __int64 startTime; QueryPerformanceCounter((LARGE_INTEGER *)&startTime); //do something... unsigned __int64 endTime; QueryPerformanceCounter((LARGE_INTEGER *)&endTime); double timeDifferenceInMilliseconds = ((endTime-startTime) * timerFrequency); 

(由Darcara回答,来自: https ://stackoverflow.com/a/4568649/330067)

C ++ 11添加了一些标准的计时function(参见第20.11节“时间实用程序”),但准确性很高,但大多数编译器还不支持这些function。

大多数情况下,您需要使用OS API,例如POSIX的gettimeofday

对于代码的计时部分,请尝试std :: clock ,它返回ticks,然后除以CLOCKS_PER_SEC

libUTP(uTorrent传输协议库)有一个很好的例子 ,可以在不同平台上获取microtime。