// 返回自系统开机以来的毫秒数(tick)
unsigned long GetTickCount()
{
struct timeval tv;
if( gettimeofday(&tv, NULL) != 0 )
return0;
return (tv.tv_sec * 1000) + (tv.tv_usec /1000);
}
// 返回自系统开机以来的毫秒数(tick)
unsigned long GetTickCount()
{
structtimespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts);
return (ts.tv_sec * 1000 + ts.tv_nsec / 1000000);
}
附: time()、gettimeofday()及GetTickCount()效率比较time()和gettimeofday()是linux的系统调用,GetTickCount()是windows的函数。
time:返回至1970-1-1 00:00:00至今的秒数;gettimeofday:除了返回秒数外,还有纳秒数,用于更精确的计时; GetTickCount:返回系统启动至今的毫秒数
使用三个函数,分别调用1千万次,测试结果如下: time:约967毫秒; gettimeofday:约1800毫秒;GetTickCount:约70毫秒;
可见,GetTickCount要快很多很多,在linux系统 下,频繁使用time及gettimeofday严重影响效率。
摘自:http://1.guotie.sinaapp.com/?p=157
博客来源:http://www.geaya.com/2013/11/impl-of-gettickcount-in-linux.html