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

标签 c# logging attributes statistics

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

class A
{
  [RunTimer]
  public void Foo()
  {
     // do stuff
  }
}

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

最佳答案

一个选择是制作一个高阶函数,它会为目标函数计时并记录结果:

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;
        }; 
    }
}

但是,如果您需要进行一些繁重的性能测试,那么也可以使用相应的框架。

关于c# - 自动记录和统计(C#应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6569668/

相关文章:

linux - “chattr +A”似乎不会抑制访问时间更新

c# - 无法在 Firefox 中读取 ashx 中的 session 变量值?

logging - 如何获取所有 Karaf 日志?

使用 Go 在 Google Container/Compute Engine 中登录到 Google Cloud

apache-flex - 你做客户端日志吗?

java - 通过按按钮更改框架的属性

Python 属性错误 : 'figure()' is not a Qt property or a signal

c# - SQL Server 查询与 varbinary 类型列不匹配

c# - 如何从 C#/WPF 项目调用 C++ DLL

c# - 存储过程无法正常工作错误转换数据类型