温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》
  • 首页 > 
  • 教程 > 
  • 服务器 > 
  • 如何在Linux中使用gettimeofday函数获取程序执行时间

如何在Linux中使用gettimeofday函数获取程序执行时间

发布时间:2021-05-14 16:18:26 来源:亿速云 阅读:450 作者:Leah 栏目:服务器

如何在Linux中使用gettimeofday函数获取程序执行时间?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

在Linux下计算某个程序段执行的时间一般使用gettimeofday函数,此函数的声明在sys/time.h文件中。此函数接收两个结构体参数,分别为timeval、timezone.

        两个结构体的声明如下:

struct timeval { 
  time_t tv_sec; /* seconds */ 
  long tv_usec;  /* microseconds */ 
}; 
struct timezone { 
  int tz_minuteswest; 
  int tz_dsttime; 
};

        一般通过gettimeofday函数获得当前时间时,第二个参数为nullptr。结构体timeval中的tv_sec表示秒,tv_usec表示微秒。

        matlab中通过tic(start a stopwatch timer)和toc(read the stopwatch timer)两个函数来给出程序段所运行的时间,这里通过两个宏TIC和TOC来实现。测试代码如下:

#include <sys/time.h> 
#include <unistd.h> 
#include <iostream> 
#define TIC                               \ 
  struct timeval time1, time2;                    \ 
  gettimeofday(&time1, nullptr); 
#define TOC                               \ 
  gettimeofday(&time2, nullptr);                   \ 
  double elapsed_time = (time2.tv_sec - time1.tv_sec) * 1000. +    \ 
        (time2.tv_usec - time1.tv_usec) / 1000.;        \ 
  fprintf(stdout, "Elapsed time: %lf(ms)\n", elapsed_time); 
int main() 
{ 
  unsigned int tm{10}; 
  TIC 
  for (int i = 0; i < 1000; ++i) { 
    usleep(tm); 
  } 
  TOC 
  return 0; 
}

        执行结果如下:

如何在Linux中使用gettimeofday函数获取程序执行时间

        执行过程:将终端定位到Linux_Code_Test/Samples_cplusplus目录下,执行:./build.sh,然后进入到build目录下,执行生成的执行文件即可。

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

看完上述内容,你们掌握如何在Linux中使用gettimeofday函数获取程序执行时间的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI