Linux下通过gettimeofday函数获取程序段执行时间
生活随笔
收集整理的這篇文章主要介紹了
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};TICfor (int i = 0; i < 1000; ++i) {usleep(tm);}TOCreturn 0;
}
????? ? 執行結果如下:
????? ??執行過程:將終端定位到Linux_Code_Test/Samples_cplusplus目錄下,執行:./build.sh,然后進入到build目錄下,執行生成的執行文件即可。
????? ? GitHub:?https://github.com/fengbingchun/Linux_Code_Test?
總結
以上是生活随笔為你收集整理的Linux下通过gettimeofday函数获取程序段执行时间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux下遍历指定目录的C++实现
- 下一篇: 吴恩达老师深度学习视频课笔记:卷积神经网