代码之家  ›  专栏  ›  技术社区  ›  J.Hendrix

C 2.0执行时间计时器

  •  5
  • J.Hendrix  · 技术社区  · 15 年前

    我希望能够计算一些函数执行所需的时间。我在想用秒表课。我可以在每次函数调用之前和之后调用start/stop,但这对我来说似乎非常难看。没有秒表课有没有办法做到这一点?反射类中的一些内容可以帮助解决这个问题吗?

    提前感谢您的输入。

    5 回复  |  直到 15 年前
        1
  •  3
  •   Marcos Meli    15 年前

    我想你必须试着用后竖琴的方式 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);
      } 
    }
    

    你可以用任何方法消磨时间

        2
  •  2
  •   Jake Pearson    15 年前

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

        3
  •  1
  •   Paul Sasik    15 年前

    我认为您应该考虑使用代码分析…使用外部应用程序,如 Ants Profiler 要分析您的代码吗?蚂蚁来自红门,不是免费的,但我认为那里也有一些免费/开源的应用程序。

    一些 free/open source profilers here

    在这里或那里秒表一个方法是可以的,但是尝试为解决方案中的每一个方法都这样做会很快变得难以操作。

        4
  •  1
  •   Joachim Kerschbaumer    15 年前

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

        5
  •  0
  •   David M    15 年前

    有各种计时器。 System.Timers.Timer 会是这样的。但正如前面的答案所表明的,您确定这是解决您实际试图解决的问题的正确解决方案吗?