欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Linux获取毫秒级时间

发布时间:2025/4/16 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Linux获取毫秒级时间 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

在软件设计中经常会用到关于时间的处理,用来计算语句、函数的执行时间,这时就需要精确到毫秒甚至是微妙的时间。

 

int gettimeofday(struct timeval *tv, struct timezone *tz);

int settimeofday(const struct timeval *tv , const struct timezone *tz);

 

struct timeval {

    time_t      tv_sec;     /* seconds */

    suseconds_t tv_usec;    /* microseconds */

};

 

struct timezone {

    int tz_minuteswest;     /* minutes west of Greenwich */

    int tz_dsttime;         /* type of DST correction */

};

 

下面是个简单的例子,用来统计程序的执行时间:

       …

struct timeval t_start,t_end;

    long cost_time = 0;

 

//get start time

gettimeofday(&t_start, NULL);

printf("Start time: %ld us", t_start.tv_usec);

 

//some operation

 

//get end time

gettimeofday(&t_end, NULL);

printf("End time: %ld us", t_end.tv_usec);

 

//calculate time slot

cost_time = t_end.tv_usec - t_start.tv_usec;

printf("Cost time: %ld us", cost_time);

 

输出:

Start time: 438061 us

End time: 459867 us

Cost time: 21806 us

 

demo:

#include <stdio.h> #include <stdlib.h> #include <sys/time.h> int main(int argc, char *argv[]) { printf("Hello, world!\n"); struct timeval tvafter,tvpre; struct timezone tz; int sum = 0; int i=0; gettimeofday (&tvpre , &tz);for(i = 0; i < 100000000; i++) {sum += i; } gettimeofday (&tvafter , &tz); printf("sum=%d 花费时间:%d\n",sum, (tvafter.tv_sec-tvpre.tv_sec)*1000+(tvafter.tv_usec-tvpre.tv_usec)/1000); return EXIT_SUCCESS; }

总结

以上是生活随笔为你收集整理的Linux获取毫秒级时间的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。