我是靠谱客的博主 完美朋友,最近开发中收集的这篇文章主要介绍linux 查看封装信息,时间获取函数封装--linux/unix,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

项目开发中在提高程序效率时,首先要定位到代码那个部分耗费时间较长,进而改进代码--缩短执行时间。这就要一个时间获取函数来准确获取时间,在linux/unix系统都有对应的时间获取函数,不过要对其转换封装才可以得到我们想要且看得懂的数值,下例是以封装gettimeofday()函数和struct timeval结构体获取的时间获取函数。

#include    #include

定义函数:int gettimeofday (struct timeval * tv, struct timezone * tz);

函数说明:gettimeofday()会把目前的时间有tv 所指的结构返回,当地时区的信息则放到tz 所指的结构中。

timeval 结构定义为:

struct timeval{

long tv_sec;  //秒

long tv_usec;  //微秒

};

timezone 结构定义为:

struct timezone

{

int tz_minuteswest;  //和Greenwich 时间差了多少分钟

int tz_dsttime;  //日光节约时间的状态

};

很多时候不要第二个参数值,所以一般都设置为‘NULL’

//返回值是微妙单位

UB8 ldw_time()

{

UB8 tm;

struct timeval tv;

gettimeofday(&tv, NULL);

tm = tv.tv_sec * 1000000 + tv.tv_usec;

return tm;

}

也可以将封装好的时间获取函数用宏定义,宏定义是在预处理时处理的,在代码执行上效率很高

#define START_TIME(_ST) _ST = ldw_time();

#definie END_TIME(_ET) _ET = ldw_time();

#defime WASTE_TIME(_ST,_ET) (_ET-_ST)

int main(int argc,char *argv[])

{

long t1= 0;

long t2 = 0;

char buf[1*1024*1024];

t1 = ldw_time();

//START_TIME(t1);

memset(buf,0,sizeof(buf));

t2 = ldw_time();

//END_TIME(t2);

printf("memset time:%uln",t2-t1);

// printf("memset time:%uln",WASTE_TIME(t1,t2));

return 0;

}

最后

以上就是完美朋友为你收集整理的linux 查看封装信息,时间获取函数封装--linux/unix的全部内容,希望文章能够帮你解决linux 查看封装信息,时间获取函数封装--linux/unix所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部