博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux获取毫秒级时间
阅读量:5988 次
发布时间:2019-06-20

本文共 1281 字,大约阅读时间需要 4 分钟。

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

 

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 
#include
#include
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;}

转载地址:http://mejlx.baihongyu.com/

你可能感兴趣的文章
自定义ViewGroup添加布局动画
查看>>
3.Scripting.FileSystemObject对象
查看>>
Java classloader机制测试命令
查看>>
Vue.filter()方法创建全局过滤器
查看>>
secure CRT 介绍
查看>>
CHM类型API文件打不开问题解决方法
查看>>
使用dork脚本来查询Google
查看>>
centos下配置java环境变量
查看>>
LA3353
查看>>
Maximum Subarray Sum
查看>>
js 字符串转换成数字的三种方法
查看>>
史上最简单的SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)
查看>>
调用Oracle返回值小于1时,丢失小数点前的0问题
查看>>
Centos7 Minimal 安装
查看>>
马云+牛根生+史玉柱 经典语录
查看>>
怪物AI
查看>>
后缀数组
查看>>
diff和patch命令简介
查看>>
Oracle 设置主键自增长__Oracle
查看>>
「小程序JAVA实战」小程序搜索功能(55)
查看>>