在最近的工作中,遇到了需要檢視某些函式執行具體時間的需求,現在分享給大家,如果有更好的改進,大家相互交流,這裡只做拋磚引玉的作用。
既然要想計算時間,那麼就必須知道如何計算時間,這裡選用的計算時間的函式為
/*** do_gettimeofday - returns the time of day in a timeval
* @tv:pointer to the timeval to be set
** note: users should be converted to using getnstimeofday()
*/void do_gettimeofday(struct timeval *tv)
這裡面有個重要的結構體
struct timeval ;
這樣我們就能夠得到次結構體的秒數和微秒數。而具體下面的函式是如何得到的我們無需關心。
我們只要定義一些變數,並且在函式的前後加上次函式即可得到函式的具體執行時間。定義變數和新增函式的方法如下:
do_gettimeofday(&tva);
functions()
do_gettimeofday(&tvb);
count_time += delta(&tva, &tvb);
printk(kern_info"sync_inodes_sb cost %lu microseconds\n",count_time);
這樣我們便能夠計算並列印此函式的總的執行時間,而這裡在核心中並沒有提供我們這樣的delta函式,那我們自己動手定義一下吧:
static long delta(struct timeval *tv1,struct timeval *tv2)
這樣我們就能夠完美的計算functions的執行時間了。
計算執行時間
使用方法 double t double gettickcount do something t double gettickcount t gettickfrequency 所用函式為gettickcount 和gettickfrequency gettickcount 返回cpu自某個時間 如啟...
計算執行時間
import datetime starttime datetime.datetime.now long running endtime datetime.datetime.now print endtime starttime seconds 上例演示了計算執行時間的例子,以秒進行顯示。d1 da...
C 計算函式執行時間
為優化程式,想知道程式中哪個函式消耗時間最長,自己寫了個計算程式執行時間的 簡單好用 include include include class timer timer 自動結束計時 物件被銷毀時自動結束計時 void end 手動結束 手動控制在任意位置處結束計時 利用析構函式自動結束計時並列印出...