linux下還有個系統庫函式可以精確到微秒級
#include
函式:
gettimeofday(struct time_val *tv, struct time_zone *tz);
兩個結構體引數,tv得到的是時間的資訊,tz得到的是時區資訊
我們所需要的時間主要從tv中獲取
struct time_val有兩個資料,
u_int32 tv_sec;
u_int32 tv_usec;
u_int32相當於unsigned long
tv_sec是乙個秒
tv_usec是乙個微秒
得到的時間相當於
tv_sec.tv_usec(秒)tv_usec精確到6位數,即微秒級
所以在執行第m行後時呼叫gettimeofday()得到 tv1;
執行第m+2行前呼叫 gettimeofday()得到tv2;
然後兩次相減就是時間差的
double t1 = tv1.tv_sec + tv1.tv_usec / 1000000.0
double t2 = tv2.tv_sec + tv2.tv_usec / 1000000.0
兩者相差的時間就是 t2-t1 (秒為單位,後面有6位小數)
參考文章會有更大收穫
在Linux下獲得毫秒級的精確時間
編寫完程式,都要測試程式的效能以便進一步優化。表徵程式效能的乙個主要的指標就是程式的執行時間,對於有些程式,執行的時間很短,也許就幾秒,或許就幾毫秒,這就需要精確地測量時間的方法,在linux中已經準備好了這些工具,其中最簡潔的乙個方法就是採用gettimeofday函式可以達到這個目的 其中t s...
LINUX下取系統時間 毫秒 和計算程式執行時間
include include include struct timeval tvpre,tvafter gettimeofday tvpre,null sleep 3 這裡是linux程式設計,這個sleep是秒為單位的 gettimeofday tvafter,null ast log log ...
STM8L1xx利用定時器實現毫秒和微妙延時
採用微控制器的定時計數器進行毫秒和微妙級延時,精度較準。檢測溢位時產生的標誌位來判斷延時到達。下面以stm8l101晶元為例及配合 說明。一 實現原理 1 初始化timer2時鐘源 附上相應 void tim2init void 開啟外設時鐘源 選擇向上計數模式和開啟自動重載入功能 填裝計數器的初始...