2011-12-20 54 views
2

我必須研究一個涉及多個(此處未知)步驟的特定過程。 我需要一些有效的方法來分析考慮時間跨度(可能的內存使用情況)涉及哪些通用子進程(駐留在各種程序集中)。分析組件上的代碼流

只要智能地設置斷點即可運行代碼,意味着花費太多時間尋找放置它們的「智能」位置。後來,我還將不得不重新創建數百個方法調用和輔助類中的一般邏輯步驟的一般序列。

生成序列圖可能會有所幫助,但它也可能跨越地球到火星)。因此,您可能會意識到某些工具可以幫助您理解具有某種合理抽象級別的流程邏輯。

(我試過內置分析器用於VS - 這是很好的,但需要很多時間來分析結果,並實際顯示hotpoints,再沒有「還原」實際的邏輯。)

回答

3

NDepend,因爲要執行的代碼分析,可能是對您有所幫助。

既然您提到您想從運行代碼生成序列圖...來自Sparx系統的Enterprise architect可以做到這一點。看看manual

This鏈接也對你有用。

如果你有一些錢花你可以使用RedGate Develper Bundle for .NET它有性能分析器,內存分析等,它也有一個評估版本。

還有其他更便宜的alternatives用於輪廓儀。

+0

一個非常有趣的工具列表。非常感謝。 – Nickolodeon 2012-01-16 15:38:26

+0

@Nickolodeon - 總是樂於幫忙;) – TheBoyan 2012-01-16 15:40:39

0

有更先進分析器應用程序比Visual Studio Profiler,但除非你是邏輯使用單獨的AppDomain或者很容易分組,它總是需要大量的時間來調查這些類型的問題。

Visual Studio Ultimate能夠從您的代碼生成依賴性矩陣和序列圖。 VisualNDepend也可以做到這一點。但是,雖然這些將會讓你瞭解代碼的靜態行爲,但它不會幫助你弄清楚它的運行時行爲。

代碼分析(在Visual Studio Premium和Ultimate中)有一套基於新DataFlow分析引擎的規則。有可能爲這些編寫自定義規則,但做最不重要的事情並不是最簡單的事情。

您可能能夠智能跟蹤與數據探查的結果結合起來,找準

+0

...結果是什麼? – 2012-01-03 16:37:44