日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Linux下通过gettimeofday函数获取程序段执行时间

發布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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函数获取程序段执行时间的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。