2011-05-12 40 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); 
} 

就我个人而言,我会坚持与分析器。