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
后续再深入了解一下其他的获取时间函数

本文对比了Linux下time(NULL)与gettimeofday()两种获取当前时间的方法。time(NULL)效率较高,而gettimeofday()精度更优。通过实际测试,展示了两者在相同次数调用下的耗时差异。
550

被折叠的 条评论
为什么被折叠?



