2011-07-25 25 views
2

我在一個文件中有一個C代碼test.c。我必須使用grof對其進行配置。我已經使用以下命令來執行此操作。如何在Linux中使用gprof?

gcc -p -o result test.c
./result
gprof result

輸出的部分看起來如下:

`平坦的輪廓: 每個樣品計數以0.01秒。 無累積

%累計自自總
時間秒秒時間要求TS /調用TS /呼叫name`

的問題是,無論我用什麼複雜或簡單的程序每個樣品數沒有按」 t從0.01秒變化。爲什麼是這樣,沒有時間積累和顯示在各種顏色下。

+0

你是什麼意思「必須」? –

+0

有沒有其他辦法可以做到這一點? 「必須」意味着我必須描述它我不一定意味着使用gprof。 – station

+0

那麼,當我的目標是定位代碼進行優化,以便應用程序儘可能快(而不是僅僅測量需要多長時間),[這是我的做法](http://stackoverflow.com/問題/ 375913 /什麼燦我使用到配置文件的C代碼,在Linux的/ 378024#378024)。我一直在這麼做很長時間,而且我仍然很困惑,它不是簡單地被認爲是顯而易見的。 –

回答

2

您對gcc使用錯誤的命令行選項。 -p適用於不同的較舊的分析器 - 對於gprof,您需要-pg

如果您仍然沒有看到時間被計算,那隻表示您的程序沒有消耗足夠的CPU時間來註冊 - gprof使用基於樣本的分析,並且運行時間不足以獲取任何樣本。

+1

你可以推薦另一種方式來分析cpu消費嗎? –