Linux内核中获取时间的函数do_gettimeofday

do_gettimeofday函数是可以在内核种获取时间的函数。


使用背景:在测试项目中的一个功能模块时,测试人员发现延时严重,属于不可接受的范围。然后驱动就让上层的媒控开发人员和业务开发人员加打印,看一下这个模块调用所需要的时间。然后不知道为什么,业务人员和媒控人员统计出来底层调用时间要差100多ms。这样的话,确实有点不太科学。所以,只好驱动自己加获取时间的打印,来看看调用驱动的接口到底需要花费多长时间。


使用过程:man gettimeofday可以看函数的具体说明
只不过 gettimeofday是在用户空间获取时间的函数,在内核空间要用do_gettimeofday。
它的头文件包括在#include <linux/time.h>(ps:gettimeeofday函数的头文件包括在#include <sys/time.h>)


它对应的结构体为:
struct timeval {
               time_t      tv_sec;     /* seconds */  秒
               suseconds_t tv_usec;    /* microseconds */  微秒
 };


在函数中可以具体这样实现:
#include <linux/time.h>
struct timeval time;
int ms_0 = 0,ms_1 = 0, ms = 0;
do_gettimeofday(&time);  /*第一次去获取时间*/
ms_0 = time.tv_sec * 1000 + time.tv_usec / 1000;


具体的函数模块调用:
do_gettimeofday(&time);  /*第二次去获取时间*/
ms_1 = time.tv_sec * 1000 + time.tv_usec / 1000;
ms = ms_1 - ms_0;  /*这个ms则是调用这个模块所花费的时间(单位:ms)*/


特别说明:do_gettimeofday没有返回值,要是用一个返回值接收的话,编译会报错。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值