C#2.0执行时间计时器

时间:2010-01-06 15:04:58

标签: c# performance timer stopwatch execution-time

我希望能够计算执行许多函数所需的时间。我在考虑使用某种类型的秒表课程。我可以在每个函数调用之前和之后调用start / stop,但这对我来说似乎非常难看。没有秒表课,有没有办法做到这一点? Reflections类中的某些东西可以帮助解决这个问题吗?

提前感谢您输入。

5 个答案:

答案 0 :(得分:3)

我想你必须尝试PostSharp方式http://www.postsharp.org/

更改此示例中的代码:

public class ProfileMethodsAttribute : OnMethodBoundaryAspect 
{ 
  public override void OnEntry( MethodExecutionEventArgs eventArgs) 
  { eventArgs.MethodExecutionTag = Stopwatch.StartNew();  } 

  public override void OnExit( MethodExecutionEventArgs eventArgs) 
  { 
     // Here u can get the time
     Console.WriteLine(((Stopwatch)eventArgs.MethodExecutionTag).ElapsedMilliseconds);
  } 
}

您可以通过任何方法获得时间

答案 1 :(得分:2)

我推荐性能标记的赞助商... Red Gate Ants。您可以获得一个运行应用程序的演示,并为您的应用在分析时点击的每一行和每种方法提供性能信息。

答案 2 :(得分:1)

我认为您应该考虑使用代码分析...使用Ants Profiler等外部应用程序来分析您的代码?蚂蚁来自红门并不是免费的,但我认为还有一些免费/开源应用程序。

一些free/open source profilers here ...

可以在这里和那里秒表一个方法,但尝试为你的解决方案中的每个方法做到这一点很快就会变得笨拙。

答案 3 :(得分:1)

您可以将秒表类放入用于装饰方法的属性中,即AOP样式。看看this

答案 4 :(得分:0)

有各种计时器。 System.Timers.Timer就是这样的。但正如之前的回答所暗示的那样,你确定这是你正在试图解决的问题的正确解决方案吗?