2012-03-20 33 views
0

我試圖讓我的代碼運行得更快,我在Linux中使用時間功能,這就是我所得到的。我想知道應該查看哪個數字來確定它實際運行的速度。Linux時間報告 - 如何解釋?

0.019u 0.001s 0:02.50 0.4%  0+0k 0+0io 2pf+0w 

此外,我是新來的,所以我會很感激,如果有人能向我解釋每個數字的含義。

在我的程序中,我需要讀取大量的行輸入並解析它們,並且我將它們存儲在一個struct向量中。我會稍後訪問這個向量。我想知道,如果我存儲指向struct的指針矢量而不是struct矢量,它將使我的代碼更快。

我會很感激任何輸入。謝謝。

+0

我想從http://unix.stackexchange.com/的人可以更好地回答你。 – AFD 2012-03-20 02:41:50

+0

短時間(小數秒)可能不夠精確和可靠。嘗試例如改變程序的輸入或參數,使其運行幾秒鐘。多次重複基準測量。配置文件'gprof'和'oprofile' – 2012-03-20 06:22:45

回答

0

http://en.wikipedia.org/wiki/Time_(Unix

「用戶」時間就是你的程序花費在做這樣的事情自己的程序內循環和處理的時間量。

「系統」是花在運行系統操作(如從文件系統讀取文件,運行進程等等)的時間。您的程序可能沒有特別要求但系統正在執行的操作您的工具的時間。

「真實」是一個從開始到結束的合併時間,也可以包括時間,當它沒有真正做任何工作,只是在等待什麼。

它確實是一個問題,你的程序確定哪些信息對你很重要。如果你所有的程序都是內部緊縮數字,那麼只有用戶時間纔是重要的。如果它做了大量的處理,調用,讀取文件,打開流程,那麼您可能只需要一個實際的時間來完成運行。

使用time來衡量你的表現顯然是對性能的粗略估計。你不知道某些功能是否獲得了任何速度。爲此,您需要了解如何剖析代碼。或者添加自己的環繞函數的時間測試,以便確切知道特定代碼塊需要運行多長時間。

+0

感謝您的鏈接。在我發佈這個問題之前,這正是我去過的地方。我不理解解釋中使用的技術術語。請多多包涵。 – michcs 2012-03-20 02:50:01

+0

@ michcs:包括一些更多的細節給你。 – jdi 2012-03-20 02:55:34

+0

謝謝jdi,這對我有很大的幫助。我會嘗試gprof,看看我能否從中得出一些意見。 – michcs 2012-03-20 03:01:25