2010-11-29 68 views
4

您是否知道用於查看應用程序分析結果的基於文本的應用程序?分析結果基本上包含C++函數回調列表以及遇到這些回溯的頻率;現在我正在尋找一個控制檯工具來分析原始數據(哪個回溯最經常發生;哪個功能最常被調用,與呼叫跟蹤無關)。用於分析結果的基於文本的查看器

到目前爲止,我已經從原始數據創建了兼容callgrind的文件,然後使用優秀的KCachegrind工具進行分析;但現在我也在尋找一種不需要基於文本的終端的工具。有任何想法嗎?

回答

1

看看callgrind_annotate

該命令讀入配置文件數據,並打印排序的功能列表(可選)與源註釋。

1

我寫了這樣一個查看器一次。它專注於一行代碼,顯示通過該行的樣本的百分比,以及允許轉換爲上級或下級代碼行的蝴蝶視圖。

它做了一個很好的演示,但我真的使用它?不是很長。

(我假設你想加速期間已採取堆樣品,在用戶等待即不是。)

的事情是,該程序可能做一些在浪費時間。 (如果不是這樣,你不能加快速度。) 無論那種浪費的東西是什麼,它包含了一些百分之幾的時間花在了貧窮的原因,如10%,50%,90%,或其他。在此期間,它在堆棧中,因此對堆棧樣本的檢查將顯示出來。

而且,你不必看很多。如果有50%的時間需要處理,1000個樣本將顯示約500個樣本,10個樣本會顯示約5個樣本。較大數量的樣本將用一個額外的精度數字來估算百分比。如果您的目標是要隔離問題以便解決問題,則不需要額外的數字。

所以,一個按行顯示堆棧樣本百分比的工具是非常好的事情,因爲浪費的代碼會出現在它上面,顯示百分比。

它沒有顯示的是語句執行的原因,這是你如何知道它是否浪費。看看棧上的語句的上下文確實告訴你。

所以即使我有觀衆,我只是最終檢查了樣品本身,只有約10或20個。百分比越大,我發現之前需要查看的樣本數量越少。 Here's an example.