呵呵呵呵呵

萝莉有三好,柔体 轻音 易推倒。女神有三宝,干嘛 呵呵 去洗澡。宅男有三好:Dota 基友 破电脑。


linux中clock,times,gettimeofday,clock_gettime对比代码示例

linux中clock,times,gettimeofday,clock_gettime对比代码示例

代码如下:

//filename:test5.c
//gcc test5.c -lrt -o test5
#include    <stdio.h>
#include    <stdlib.h>
#include    <unistd.h>
#include <time.h>
#include <sys/times.h>
#include <sys/time.h>
#define WAIT for(i=0;i<298765432;i++);
#define MILLION    1000000
int main ( int argc, char *argv[] )
{
    int i;
    long ttt;
    clock_t s,e;
    struct tms aaa;


/*  use clock() function */
    s=clock();
    WAIT;
    e=clock();
    printf("clock time : %.12f\n",(e-s)/(double)CLOCKS_PER_SEC);

/*  use times() function */
    long tps = sysconf(_SC_CLK_TCK);
    s=times(&aaa);
    WAIT;
    e=times(&aaa);
    printf("times time : %.12f\n",(e-s)/(double)tps);

/*  use gettimeofday() function */
    struct timeval tvs,tve;
    gettimeofday(&tvs,NULL);
    WAIT;
    gettimeofday(&tve,NULL);
    double span = tve.tv_sec-tvs.tv_sec + (tve.tv_usec-tvs.tv_usec)/1000000.0;
    printf("gettimeofday time: %.12f\n",span);

/*  use clock_gettime() function */
    struct timespec tpstart;
    struct timespec tpend;

    clock_gettime(CLOCK_REALTIME, &tpstart);
    WAIT;
    clock_gettime(CLOCK_REALTIME, &tpend);
    double timedif = (tpend.tv_sec-tpstart.tv_sec)+(tpend.tv_nsec-tpstart.tv_nsec)/1000000000.0;
    printf("clock_gettime time: %.12f\n", timedif);

    return EXIT_SUCCESS;
}

gcc -lrt test5.c -o test5
 ./test5
clock time : 0.718750000000
times time : 0.730000000000
gettimeofday time: 0.734377000000
clock_gettime time: 0.719691400000

更多内容:

linux中时间函数gettimeofday()使用示例
linux中实时函数clock_gettime示例
linux中times()时间函数示例
linux中clock函数示例
Linux下获取毫秒纳秒时间精度的深入分析

本文链接地址:http://www.hehehehehe.cn/i/823.html