Linux C语言 高精度时间函数:gettimeofday()
2017-09-28 16:23
706 查看
简介:
为了获取某函数调用耗时.在C语言中可以使用函数gettimeofday()函数来得到时间。它的精度可以达到微秒, 且在x86-64平台gettimeofday()已不是系统调用,不会陷入内核, 多次调用不会有性能损失.
函数原型:
说明:
<1>.gettimeofday()会把目前的时间用tv 结构体返回,当地时区的信息则放到tz所指的结构中
<2>.struct timeval结构体为时间变量, 包括两个成员变量:tv_sec(秒), tv_usec(微秒); 第二个结构体为时区, 本示例没有用到可以置为NULL.
代码示例:
注意: 获得秒数时, 分母需要为 1000.0, 如果是1000, 则返回整数,这样就不精确了.
原因:
相同数据类型的数据、变量进行运算,结果保持原有数据类型。
当不同数据类型的数据、变量进行运算时,结果为精度高的数据类型。
例如:1/2 的结果为0; 1.0/2 的结果为 0.5
C语言其它时间函数(Linux&Win)
为了获取某函数调用耗时.在C语言中可以使用函数gettimeofday()函数来得到时间。它的精度可以达到微秒, 且在x86-64平台gettimeofday()已不是系统调用,不会陷入内核, 多次调用不会有性能损失.
函数原型:
#include<sys/time.h> int gettimeofday(struct timeval*tv,struct timezone *tz )
说明:
<1>.gettimeofday()会把目前的时间用tv 结构体返回,当地时区的信息则放到tz所指的结构中
<2>.struct timeval结构体为时间变量, 包括两个成员变量:tv_sec(秒), tv_usec(微秒); 第二个结构体为时区, 本示例没有用到可以置为NULL.
struct timeval{ long tv_sec;/*秒*/ long tv_usec;/*微妙*/ }; struct timezone{ int tz_minuteswest;/*和Greewich时间差了多少分钟*/ int tz_dsttime;/*type of DST correction*/ }
代码示例:
struct timeval tvBegin, tvEnd; gettimeofday(&tvBegin, NULL); //耗时函数执行... gettimeofday(&tvEnd, NULL); //<1>.获得毫秒数: double dDuration = 1000 * (tvEnd.tv_sec - tvBegin.tv_sec) + ((tvEnd.tv_usec - tvBegin.tv_usec) / 1000.0); //<2>.获得秒数: double dDuration = (tvEnd.tv_sec - tvBegin.tv_sec) + ((tvEnd.tv_usec - tvBegin.tv_usec) / 1000.0) / 1000.0;
注意: 获得秒数时, 分母需要为 1000.0, 如果是1000, 则返回整数,这样就不精确了.
原因:
相同数据类型的数据、变量进行运算,结果保持原有数据类型。
当不同数据类型的数据、变量进行运算时,结果为精度高的数据类型。
例如:1/2 的结果为0; 1.0/2 的结果为 0.5
C语言其它时间函数(Linux&Win)
相关文章推荐
- C语言linux环境下使用gettimeofday函数得到程序运行时间
- linux中C语言获取高精度时钟gettimeofday函数
- linux返回精确到毫秒的时间函数:gettimeofday
- linux gettimeofday()函数取出时间打印方法
- Linux时间函数之gettimeofday()函数之使用方法
- Linux时间函数之gettimeofday()函数
- Linux时间函数之gettimeofday()函数之使用方法
- Linux时间函数之 gettimeofday() 函数之使用方法
- Linux时间函数之gettimeofday()函数之使用方法
- Linux内核中获取时间函数do_gettimeofday
- Linux时间函数之gettimeofday()函数之使用方法
- linux 上时间相关的函数 time ,_ftime , gettimeofday, clock_gettime
- linux下得时间函数time 与gettimeofday
- Linux下通过gettimeofday函数获取程序段执行时间【推荐】
- Linux时间函数之gettimeofday()函数之使用方法
- Linux时间函数之gettimeofday()函数之使用方法
- C语言gettimeofday()函数:获取当前时间
- Linux时间函数之gettimeofday()函数之使用方法
- linux墙上时间xtime与高精度时钟gettimeofday
- linux时间函数time和gettimeofday