linux 服务器时间函数

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


后续再深入了解一下其他的获取时间函数

原文地址:https://www.cnblogs.com/dyllove98/p/3129893.html