簡體   English   中英

如何在ubuntu中計算C程序的運行時間

[英]How to compute run time for a C program in ubuntu

我嘗試>>time ./a.out

得到

real 0m0.035s

user 0m0.008s

sys  0m0.004s

到底是什么意思

當我重復我得到

real 0m0.012s

user 0m0.000s

sys  0m0.012s

如果每次獲得不同的輸出都嘗試多次,為什么? 我該怎么解決。

這些每個都是程序的不同運行時。

  • 實際是運行所需的實際掛鍾時間

  • sys是系統在執行程序時所花費的時間(即內核所花費的時間)

  • 用戶是在用戶模式下執行它所花費的時間(即花費在您不在內核中的位置上的時間)。

沒有“解決方案”,因為沒有問題。 您正在運行一個多任務系統,這取決於負載獲得響應的速度。 您可以做幾次,然后將平均值作為“參考”。

time -f "%e" -o Output.log ./a.out

將將執行文件a.out的總執行時間的值存儲到文件Output.log中

您的時間將永遠不會相同,因為每次執行程序時,計算機上的條件都會不同,操作系統進程/線程調度程序,內存分配和釋放以及系統可能正在執行的其他任務,就像從磁盤讀取沉重的文件,進行交換。

Kurtis Nusbaum已經指出了real,user和sys的含義,我只想澄清real:這是執行程序的總時間,因此,如果偶然您的磁盤處於繁重的操作狀態,那么當您讀取程序時,總時間會更長數據。 因此,它不是衡量效率,而是衡量經過的時間。 用戶+系統時間將是一個更好的效率表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM