自动记录和统计(C#应用程序)

guy*_*uyl 3 c# statistics logging attributes

我正在尝试考虑输入统计信息和某种登录程序的最佳方法.1.有没有人有一篇关于在程序中实施的统计数据的好文章?
2.我可以创建一个属性,以便在某个方法之前调用计时器来测量运行所花费的时间吗?例如

class A
{
  [RunTimer]
  public void Foo()
  {
     // do stuff
  }
}
Run Code Online (Sandbox Code Playgroud)

编辑
好我们希望有机会在运行时控制统计数据,而不仅仅是ob dev或QA时间.

Sea*_*man 6

一种选择是创建一个高阶函数,它将为目标函数计时并记录结果:

public static class TimingExtensions
{
    public static Func<R> Time<R>(this Func<R> target, Action<string> logger)
    {
        return delegate
        {
            System.Diagnostics.Stopwatch s = new System.Diagnostics.Stopwatch();

            s.Start();

            R value = target();

            s.Stop();

            logger("Function '" + target.Method.Name + "' elapsed ms: " + s.ElapsedMilliseconds); 

            return value;
        }; 
    }
}
Run Code Online (Sandbox Code Playgroud)

但是如果你需要进行一些重要的性能测试,那么那里也有框架.