2008-09-10 105 views
18

我需要顯示從深度嵌入式CPU拉取的分析信息,並以我團隊中其他開發人員能夠採取行動的方式呈現。性能分析數據是每個函數進入和退出時循環計數器的快照,因此我們有一個以亞微秒計時精度標註的調用圖。我不想只是拋出像gprof這樣的函數名稱和時序,我正在尋找更容易理解和採取行動的東西。分析可視化工具?

是否有人使用特別好的分析工具(在任何平臺上),這可以輕鬆識別要鑽入的代碼區域?我正在尋找一個鼓舞人心的例子來跟蹤如何顯示調用圖,但如果有一個好的輸入格式工具,我可以將數據按摩到我將使用它。我可以使用Windows,Linux或MacOS X來運行可視化工具。

關於IBM DeveloperWorks的簡介文章使我知道了GraphViz,在他們的網站上有profiling示例。除了另外一個建議,我會使用GraphViz並模仿他們的配置示例。

回答

2

IE 8b2提供了JavaScript調用樹的simple display,我認爲它比GraphViz圖表更有用。

GraphViz圖表對於可視化調用樹來說非常棒,但卻讓時間問題(恕我直言,更重要的數據)可視化變得非常困難。

**編輯:我認爲值得指出的是,所有建議的工具都使用基於網格的樹來可視化調用樹。這可以讓你看到調用結構,而不會減少計時數據,因爲我相信你可以使用GraphViz圖表。*

1

JetBrains dotTrace(有一個可以玩的試用演示)。它組織調用堆棧,並可以輕鬆找到故障點。也有很多過濾功能。非常容易導航並找到你要找的東西。

3

「GTKWave」如何? 但是你必須在你的代碼中插入探針。

+0

有趣的想法,@XC。 - 不GTKWave可視化[VCD](http://en.wikipedia.org/wiki/Value_change_dump)文件?我已經用[simulavrxx](http://www.nongnu.org/simulavr/usage.html)模擬器使用了`gdb`,但是那裏的模擬器爲GTKWave生成了VCD轉儲文件...如何獲得VCD轉儲爲'本地運行'的C程序或Perl腳本? – sdaau 2011-09-23 10:08:16

17

另一個可視化分析數據的簡潔工具是gprof2dot.py python script。 它可以用來可視化幾種不同的格式:「這是一個將prof,gprof,oprofile,Shark,AQtime和python分析器的輸出轉換成點圖的Python腳本。」這是輸出的樣子:

http://jrfonseca.googlecode.com/svn/wiki/gprof2dot_small.png

+0

這是一款出色的可視化工具! – 2012-05-18 13:19:48

+0

有什麼辦法可以支持python3.2嗎? – 2012-10-22 18:34:21

2

您可以使用Senseo,這是Eclipse的一個插件。它向您顯示性能,內存分配,創建的對象,花費的時間,調用的實際方法,懸停在方法簽名或調用上,調用上下文樹,包資源管理器等等。

0

我寫了一個基於瀏覽器的可視化工具profile_eye,它在gprof2dot的輸出上運行。

gprof2dot擅長於挖掘許多性能分析工具的輸出,並且在圖形元素佈局方面做得非常出色。最終的渲染是一個靜態圖形,通常非常混亂。

使用d3.js可以通過未聚焦元素的相對淡入,工具提示和fisheye distortion來消除大部分混亂。

有關比較,請參閱canonical example used by gprof2dotprofile_eye's visualization