我在linux上有一個C程序。在執行我的程序的過程中,如果進程面臨高於閾值的調度延遲,我想作出一些決定。如何在c中找到進程的調度延遲
有關我如何找到此統計信息的任何建議?
P.S .:通過調度延遲我意味着等待調度的進程花費的時間,即花費在調度器隊列中的時間。
我在linux上有一個C程序。在執行我的程序的過程中,如果進程面臨高於閾值的調度延遲,我想作出一些決定。如何在c中找到進程的調度延遲
有關我如何找到此統計信息的任何建議?
P.S .:通過調度延遲我意味着等待調度的進程花費的時間,即花費在調度器隊列中的時間。
的time()
功能允許您測量「掛鐘」時間:http://linux.die.net/man/2/time 在另一邊,clock()
功能,可以測量使用您的進程的CPU時間:http://linux.die.net/man/3/clock
通過減去了兩下,就可以得到近似於你所要求的。
PS:爲更精確的測量(時間具有第二分辨率),可以使用clock_gettime
:http://linux.die.net/man/3/clock_gettime
你可以設置一個計時器,走下車,說每一分鐘,或任何時間間隔似乎是恰當的,然後收集與getrusage()
統計數據,並根據這些結果(連續值之間的差),你可以把你的決定再
你所說的「調度延遲」是什麼意思?你能否詳細說明一下? – 2014-09-12 18:49:00
我指的是進程在調度程序隊列中花費多少時間,即等待排定的時間。 – 2014-09-12 18:54:18
@Siddharth:你應該*編輯你的問題*來改善它,而不是回答評論。 – 2014-09-12 18:55:36