2

我想针对在测试和生产中运行的一些服务运行分析代码。我的计划是使用 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 中添加一行)会导致严重的(就时序数据的有效性而言)性能问题吗?

4

1 回答 1

2

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

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

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

于 2010-01-22T09:56:14.450 回答