2011-05-12 43 views
3

我想統計自應用程序啓動後執行以下方法的次數。我怎樣才能做到這一點?計數函數調用

System.Drawing.Graphics.FromHdcInternal(IntPtr hdc) 
System.Drawing.BufferedGraphicsContext.CreateBuffer(IntPtr src, Int32 offsetX, Int32 offsetY, Int32 width, Int32 height) 
+2

使用分析器。 – dandan78 2011-05-12 14:03:23

回答

1

規範,最簡單的方法可能只是簡單地使用探查器應用程序。就我個人而言,我有與jetBrains dotTrace良好的經驗,但有更多的。

基本上你所做的是讓你的應用程序啓動探查器,它會跟蹤代碼中的所有方法調用。然後它會顯示你花了多少時間來執行這些方法,以及它們被調用了多少次。

假設你想知道這個的原因實際上是性能,我認爲這是一個好主意,看看一個分析器。您可以嘗試通過對瓶頸位置進行有根據的猜測來優化代碼,但如果使用分析器,則可以實際測量它。我們都知道,測量兩次,切一次;-)

2

我可以想到兩種方法。一個是使用探查器,這可能是最簡單的。

另一種是將呼叫包裹在一個函數中,爲你計算它。查找和替換將完成剩下的工作。

private int invokeCount = 0; 

public static Graphics FromHdcInternalWrapped(IntPtr hdc) 
{ 
    invokeCount++; 
    return Graphics.FromHdcInternal(hdc); 
} 

就我個人而言,我會堅持與分析器。