2010-01-22 53 views
2

我想针对运行在测试和生产环境中的一些服务运行分析代码。我的计划是使用PostSharp实现一个类,看起来像PostSharp是剖析在生产环境中运行的代码的好方法吗?

public class TimerAttribute : OnMethodBoundaryAspect 
    { 
     //some data members 
     //... 

     public override void OnEntry(MethodExecutionEventArgs eventArgs) 
     { 
      //write method entry time to file 
     } 

     public override void OnExit(MethodExecutionEventArgs eventArgs) 
     { 
      //write method exit time to file 
     } 
    } 

我走之前太远,在那里我应该知道的任何潜在的缺陷?这些方法的广泛使用(即仅添加一行到汇编信息)会导致严重的(就定时数据的有效性而言)性能问题?

回答

2

对于性能检测,您应该了解该方面的开销。这个开销在以前版本的PostSharp中很重要,但在PostSharp 2.0中已经有了很大的改进。

关于您的代码,我发现写入文件的危险可能会很慢并且线程不安全。当然,这取决于你的背景和目标。

性能计数器可能是一个很好的选择。

相关问题