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

时间:2010-01-22 00:56:51

标签: .net profiling aop 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
        }
    }

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

1 个答案:

答案 0 :(得分:2)

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

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

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