如何控制乙個函式的執行時間

2021-06-12 21:28:56 字數 650 閱讀 3467

在考慮介面設計時,想到這個問題,如何控制乙個函式的執行時間呢,因為我需要呼叫被其他地方繼承的函式,如果那個函式裡面有缺陷或者內容過多,導致執行時間太長怎麼辦? 

下面就是用多執行緒控制函式執行時間的例子,被控制的函式為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...