[英]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.