c#异常强大的统计运行时间功能,一行代码,监控 C# 方法执行耗时

2023-12-13 21:48:10

MethodTimer.Fody

MethodTimer.Fody 是一个功能强大的库,可以用于测量 .NET 应用程序中的方法的执行时间。

它使用 Fody 插件框架可以无缝集成到您的项目中,所以向代码中添加性能测量功能变得非常容易。

如何使用

首先,需要安装 Nuget 包,如下

PM>?Install-Package?Fody
PM>?Install-Package?MethodTimer.Fody

接下来,在我们的代码中的方法上加上 Time 特性,如下

public?class?MyClass
{
????[Time]
????public?void?Hello()
????{?
????????Console.WriteLine("Hello");
????}
}

完整代码,如下

using?MethodTimer;

new?MyClass().Hello();?

Console.ReadKey();


public?class?MyClass
{
????[Time]
????public?void?Hello()
????{?
????????Console.WriteLine("Hello");
????}?
}

运行程序后,可以在输出窗口查看方法的执行耗时

图片

这真的非常简单和方便。

还可以把 Time 特性直接添加到 Class 上,如下

using?MethodTimer;

var?cs?=?new?MyClass();

cs.Hello();
cs.World();

Console.ReadKey();

[Time]
public?class?MyClass
{?
????public?void?Hello()
????{?
????????Console.WriteLine("Hello");
????}

????public?void?World()
????{
????????Console.WriteLine("World");
????}
}?

运行程序后,可以输出每个方法的执行耗时。

图片

实际上,在代码中添加了 Time 特性以后,Fody 会自动生成下面的代码:

public?class?MyClass
{
????public?void?Hello()
????{
????????var?stopwatch?=?Stopwatch.StartNew();
????????try
????????{?
????????????Console.WriteLine("Hello");
????????}
????????finally
????????{
????????????stopwatch.Stop();
????????????Trace.WriteLine("MyClass.Hello?"?+?stopwatch.ElapsedMilliseconds?+?"ms");
????????}
????}
}

如果您想手动处理日志记录,可以定义一个静态类来拦截日志记录,如下

public?static?class?MethodTimeLogger
{
????public?static?void?Log(MethodBase?methodBase,?long?milliseconds,?string?message)
????{
????????Console.WriteLine($"方法名:{methodBase.Name}??耗时:{milliseconds}");
????}
}

运行程序后,输出了执行方法和耗时

图片

?

文章来源:https://blog.csdn.net/weijia3624/article/details/134982071
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。