2017-04-10 34 views
2

有沒有辦法找到系統的早期時代呼喚。如何長時間的系統調用花費例如:找到系統調用需要多長時間的可能方法?

system(smbtree); 

我怎樣才能找到多久將上述系統調用takes.so,我可以顯示等待時間?

我能夠使用time()計算執行時間,但是有什麼辦法可以提前查找,以便我可以倒計時或等待時間嗎?

+0

這就像看未來一樣。您無法知道X在執行X之前需要多長時間,X操作必須將進度傳回以便能夠顯示準確的進度。 – Raxvan

+0

只要我們解決了暫停問題,我們應該能夠編寫一個功能,可以做到這一點:) –

回答

4

你不能。

根本無法提前知道某些任意shell調用需要完成多長時間。不僅每個調用都不同,而且不同的操作系統在不同的處理器上在不同的溫度下運行不同數量的進程將會花費不同的時間來執行該任務。天真地說,你可以做的最好的事情是根據經驗測試來提出一些模糊的估計(比如,「我的shell腳本通常需要大約5秒鐘才能運行,無論我在哪裏進行測試」),並且希望它足夠接近事實上。確保寫下你的代碼,以支持通過和/或改變估計,就像往常一樣。

一個合適的解決方案將涉及第三方進程自身直接向進程中的調用進程提供狀態信息。

+0

謝謝你BTW愛烏爾的建議 – rick

-1

您將必須提前計算執行時間,因爲需要多長時間取決於運行的機器。

+0

它將取決於更多。 –

+0

@BoundaryImposition那麼我說錯了怎麼回事?僅僅因爲它依賴於不止於此,並不能說明它運行的機器是其中一個因素。 – OpenUserX03

+0

我沒有說這是錯的。 –