最近在跑一些程式,需要計算程式執行的時間,然後搜尋了一下相關的材料,發現下面的乙個比較好的方法,可以實現毫秒級的計時:
#include
#if defined(win32)
# define timeb _timeb
# define ftime _ftime
#else
#define timeb timeb
#endif
time_t ltime1, ltime2, tmp_time;
struct timeb tstruct1, tstruct2;
ftime (&tstruct1); //
start time ms
time (//
start time s
//work
time (//
end time sec
ftime (&tstruct2); //
end time ms
tmp_time = (ltime2 * 1000 + tstruct2.millitm) - (ltime1 * 1000 + tstruct1.millitm);
更新:2023年2月25日 12時34分28秒
下面的**是乙個可以在windows和linux平台下進行毫秒級計時的程式。
程式中是進行上萬次的記憶體分配來耗時,演示計時的方法的。
毫秒級的計時的主要使用的函式ftime,使用ftime可以得到當前時間的毫秒和秒,從而我們可以得到毫秒級的計時。
但是如果要以毫秒為單位輸出時間的話,必須使用64位的資料型別來表示。在linux上是long long,而windows下是使用__int64.並且如果使用printf的話,需要使用64位情況下對應的輸出方式。不然會輸出負數,這時就是溢位了。
linux下是:printf("%lld",n)
windows下是:printf(「%i64d",n)
#include
#include
#include
#if defined(win32)
# define timeb _timeb
# define ftime _ftime
typedef __int64 time_t;
#else
#define timeb timeb
typedef long
long time_t;
#endif
int time_interval()
}ftime(&ts2);//
停止計時
t1=(time_t)ts1.time*1000+ts1.millitm;
printf("
t1=%lld\n
",t1);
t2=(time_t)ts2.time*1000+ts2.millitm;
printf("
t2=%lld\n
",t2);
ti=t2-t1;//
獲取時間間隔,ms為單位的
return ti;
}int main()
不過其實如果只是單純的獲得時間的間隔的話,也不用考慮64位的問題,因為將兩個時間的秒一級的耗時相減的話結果就比較小了,**如下:
#include
#include
#include
#if defined(win32)
# define timeb _timeb
# define ftime _ftime
#else
#define timeb timeb
#endif
int time_interval()
}ftime(&ts2);//
停止計時
t_sec=ts2.time-ts1.time;//
計算秒間隔
t_ms=ts2.millitm-ts1.millitm;//
計算毫秒間隔
ti=t_sec*1000+t_ms;
return ti;
}int main()
C中計算程式執行時間差 毫秒級
最近在跑一些程式,需要計算程式執行的時間,然後搜尋了一下相關的材料,發現下面的乙個比較好的方法,可以實現毫秒級的計時 include if defined win32 define timeb timeb define ftime ftime else define timeb timeb endi...
C MFC 中計算系統執行時間差
1 計算時間差 clock t clock void 簡單而言,就是該程式從啟動到函式呼叫占用cpu的時間。這個函式返回從 開啟這個程式程序 到 程式中呼叫clock 函式 時之間的cpu時鐘計時單元 clock tick 數,在msdn中稱之為掛鐘時間 wal clock 若掛鐘時間不可取,則返回...
python程式計算執行時間差
參考鏈結 示例 import datetime from time import time time0 datetime.datetime 2020,1,3,21,11,31,994824 time1 datetime.datetime 2020,1,3,21,11,32,765880 interv...