您的位置:首页 > 运维架构 > Linux

linux 服务器时间函数

2013-06-09 16:15 281 查看
linux下,至少有两种当前时间的获取函数,

1. time(NULL)

2. gettimeofday(NULL, NULL)

这两个函数都是在用户态完成的,效率上来说,time更高;精度上来说gettimeofday()更好。

根据需要自己选择吧,测试函数如下,

#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/time.h>

using namespace std;

#define TEST_TIMES 10000000

int main()
{
clock_t  start_time, end_time;

time_t now;
start_time = clock();
for( int i=0; i < TEST_TIMES; i++ )
{
now = time(NULL);
}
end_time = clock();

printf("elapse for time(NULL) is %ld\n", (end_time-start_time));

struct timeval tv;

start_time = clock();
for( int i=0; i < TEST_TIMES; i++ )
{
gettimeofday( &tv, NULL );
}
end_time = clock();

printf("elapse for gettimeofday is %ld\n", (end_time-start_time));

return 0;
}


测试结果如下

elapse for time(NULL) is 40000

elapse for gettimeofday is 180000

后续再深入了解一下其他的获取时间函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: