PostSharp 是分析生产中运行的代码的好方法吗?

Posted

技术标签:

【中文标题】PostSharp 是分析生产中运行的代码的好方法吗?【英文标题】:Is PostSharp a good way to profile code running in production? 【发布时间】:2010-01-22 00:56:51 【问题描述】:

我想针对一些在测试和生产中运行的服务运行分析代码。我的计划是使用 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
        
    

在我走得太远之前,我应该注意哪些潜在的陷阱?这些方法的广泛使用(即仅在 assemblyinfo 中添加一行)会导致严重的(就时序数据的有效性而言)性能问题?

【问题讨论】:

【参考方案1】:

对于性能检测,您应该了解方面的开销。这种开销在 PostSharp 的早期版本中很重要,但在 PostSharp 2.0 中得到了极大的改进。

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

性能计数器可能是一个不错的选择。

【讨论】:

以上是关于PostSharp 是分析生产中运行的代码的好方法吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用PostSharp实现AOP拦截

5 Why 分析法,一种用于归纳抽象出解决方案的好方法

清洁代码之道:一份实用关于如何编写和维护干净整洁的好代码的的方法 The Art Of Clean Code...

清洁代码之道:一份实用关于如何编写和维护干净整洁的好代码的的方法 The Art Of Clean Code...

PostSharp 对 Visual Studio 2005 的支持?

采用PostSharp实现