在考慮介面設計時,想到這個問題,如何控制乙個函式的執行時間呢,因為我需要呼叫被其他地方繼承的函式,如果那個函式裡面有缺陷或者內容過多,導致執行時間太長怎麼辦?
下面就是用多執行緒控制函式執行時間的例子,被控制的函式為a.func1()。
一點說明:環境是c++/qt,執行緒使用的是qt的執行緒,qdebug是用來列印的,跟std::cout類似。
class a
int member;
};class thread : public qthread
void run()
private:
a *a;
};class testclass
//判斷函式是否在限定是時間內結束(true),否則判為超時(false)
bool test2(a *a) const
sleep(1); //迴圈時最好加上sleep,要不cpu佔用率就很高
}return true;
}};int main(int argc, char *argv)
輸出結果:
5000
false
【續】unix下有alarm函式可以使用,可以實現過段時間讓程序重新得到控制。好像結合setjmp可以實現。
參考:
獲取乙個函式的執行時間
我這裡採用的是time.h標頭檔案中的clock t clock 函式,該函式返回的是從程式開始執行到呼叫clock函式時所打的點數,即clock tick 時鐘打點 常數clk tck,是機器時鐘每秒所走的時鐘打點數 用函式執行時所記錄的打點數除以clk tck就可以得到執行時間 例項如下 inc...
Python控制函式執行時間
在某個flask專案在做後端介面時需要設定超時響應,因為介面中使用爬蟲請求了多個 響應時間時長時短。我需要設定乙個最大響應時間,時間內如果介面爬蟲沒跑完,直接返回請求超時。從網上了解到有兩種方法,廢話不多說直接上 import requests,datetime,time import thread...
函式執行時間計算
在最近的工作中,遇到了需要檢視某些函式執行具體時間的需求,現在分享給大家,如果有更好的改進,大家相互交流,這裡只做拋磚引玉的作用。既然要想計算時間,那麼就必須知道如何計算時間,這裡選用的計算時間的函式為 do gettimeofday returns the time of day in a tim...