关于Linux下获取系统时间问题
2016-04-10 11:43
579 查看
1、应用原由
最近在做视频图像编解码的一些工作,经常会碰到测量某一个模块大体工作时间的问题。为了降低整个程序的时间消耗,增强系统实时性,掌握个模块的大体时间利用情况是非常有必要的,对于我们这边强调的极限延时时间,也是大有裨益的。
2、常用方式
(1)gettimeofday(获取当前时间)
头文件:#include <sys/time.h>
函数定义:int gettimeofday(struct timeval *tv, struct timezone *tz)
函数说明:
当gettimeofday( )被调用后,当前系统时间讲通过tv所指的timeval结构体返回,而时区信息则通过tz所指的timezone结构提返回。对于日常工作而言获取时区信息意义不大,故tz指针通常设置为NULL。
timeval结构定义:
struct timeval{
long tv_sec; // 秒(s)
long tv_usec; // 微秒(us)
}
返回值:成功返回0,失败返回-1,错误代码存于errno中。
Demo:
#include <stdio.h>
#include <sys/time.h>
#include <time.h>
int main(int argc, char *argv[ ])
{
double useTime; //ms
struct timeval startTime,finishTime;
while(1){
gettimeofday(&startTime, NULL);
usleep(500*1000);
gettimeofday(&finishTime, NULL);
useTime = 1000*(finishTime.tv_sec - startTime.tv.sec) + (finishTime.tv_usec - startTime.tv_usec)*0.001;
printf("useTime = %f ms \n",useTime);
}
return 0;
}
运行结果:useTime = 500.777000 ms
useTime = 502.640000 ms
useTime = 500.590000 ms
useTime = ...
(2)未完待续
最近在做视频图像编解码的一些工作,经常会碰到测量某一个模块大体工作时间的问题。为了降低整个程序的时间消耗,增强系统实时性,掌握个模块的大体时间利用情况是非常有必要的,对于我们这边强调的极限延时时间,也是大有裨益的。
2、常用方式
(1)gettimeofday(获取当前时间)
头文件:#include <sys/time.h>
函数定义:int gettimeofday(struct timeval *tv, struct timezone *tz)
函数说明:
当gettimeofday( )被调用后,当前系统时间讲通过tv所指的timeval结构体返回,而时区信息则通过tz所指的timezone结构提返回。对于日常工作而言获取时区信息意义不大,故tz指针通常设置为NULL。
timeval结构定义:
struct timeval{
long tv_sec; // 秒(s)
long tv_usec; // 微秒(us)
}
返回值:成功返回0,失败返回-1,错误代码存于errno中。
Demo:
#include <stdio.h>
#include <sys/time.h>
#include <time.h>
int main(int argc, char *argv[ ])
{
double useTime; //ms
struct timeval startTime,finishTime;
while(1){
gettimeofday(&startTime, NULL);
usleep(500*1000);
gettimeofday(&finishTime, NULL);
useTime = 1000*(finishTime.tv_sec - startTime.tv.sec) + (finishTime.tv_usec - startTime.tv_usec)*0.001;
printf("useTime = %f ms \n",useTime);
}
return 0;
}
运行结果:useTime = 500.777000 ms
useTime = 502.640000 ms
useTime = 500.590000 ms
useTime = ...
(2)未完待续
相关文章推荐
- linux内核分析第七次实验
- 如何查看使用的那个Linux发行版
- CentOS 7.0 修改hostname
- 关于Linux下解压tar文件出错问题
- Linux内核设计与实现 阅读笔记:8、下半部和推后执行的工作
- Linux删除文件常用的几种措施
- Linux中yum和apt-get用法及区别
- Centos6下DRBD的安装配置
- CentOS6 下rsync服务器配置
- centos7 挂载数据盘
- Web服务器磁盘满故障深入解析
- Linux下socket的五种IO模型
- date命令
- 在CentOS 6.6磁盘上分了个区的
- Linux内核如何装载和启动一个可执行程序(Linux)
- Linux内核分析实验七
- 64位 ubuntu 运行32位命令 (arm-none-linux-gnueabi-gcc)
- Linux kernel Makefile for ctags
- Linux内核分析第七周———可执行程序的装载
- 实验七:Linux内核如何装载和启动一个可执行程序