C#使用Fody实现监控方法执行时间

 更新时间:2023年11月30日 09:01:13   作者:rjcql  
这篇文章主要为大家详细介绍了C#如何使用Fody实现监控方法执行时间,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解下

写在前面

在做性能调优的时候,经常需要跟踪具体方法的执行时间;通过插入Stopwatch的方案对代码的侵入性太高了,所以引入了 MethodTimer.Fody 类库,采用编译时注入的方式给方法动态加上Stopwatch 跟踪代码,只需要在目标方法上添加 [Time] 属性标签,即可实现注入。

需要到NuGet安装一下Fody 和 MethodTimer.Fody

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

代码实现

// 方法执行时长记录器
public static class MethodTimeLogger
{
    public static void Log(MethodBase methodBase, long milliseconds, string message)
    {
        Console.WriteLine($"方法:{methodBase.Name} 耗时:{milliseconds}秒, 信息:{message}");
    }
}
 
// 测试目标类
public class MethodTracer
{
    [Time("跟踪测试")]
    public void TestMethod()
    {
        Console.WriteLine("TestMethod: 开始执行");
        Thread.Sleep(123);
    }
}

调用示例:

            var methodTracer = new MethodTracer();
            methodTracer.TestMethod();

执行结果

注意事项

有个需要特别注意的事情,否则注入代码无法生效,在项目中添加 FodyWeavers.xml 文件并将属性设置为"始终复制"。

Xml文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
  <MethodTimer />
</Weavers>

直接黏贴以下内容,vs会自动生成xsd

<Weavers>
  <MethodTimer/>
</Weavers>

到此这篇关于C#使用Fody实现监控方法执行时间的文章就介绍到这了,更多相关C#监控方法执行时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#实现绘制浮雕图片效果实例

    C#实现绘制浮雕图片效果实例

    这篇文章主要介绍了C#实现绘制浮雕图片效果实例,是C#程序设计中非常实用的一个功能,需要的朋友可以参考下
    2014-08-08
  • C#中数组、ArrayList和List三者的区别详解及实例

    C#中数组、ArrayList和List三者的区别详解及实例

    这篇文章主要介绍了C#中数组、ArrayList和List三者的区别详解及实例的相关资料,需要的朋友可以参考下
    2016-12-12
  • C#.NET 图片水印添加代码

    C#.NET 图片水印添加代码

    这篇文章主要为大家详细介绍了C#.NET 图片水印添加代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • DevExpress实现GridControl删除所有行的方法

    DevExpress实现GridControl删除所有行的方法

    这篇文章主要介绍了DevExpress实现GridControl删除所有行的方法,对于C#初学者有一定的参考借鉴价值,需要的朋友可以参考下
    2014-08-08
  • C#中使用Spire.XLS来操作Excel数据的实现

    C#中使用Spire.XLS来操作Excel数据的实现

    本文主要介绍了C#中使用Spire.XLS来操作Excel数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 通过C#实现在Excel单元格中写入文本、或数值

    通过C#实现在Excel单元格中写入文本、或数值

    在商业、学术和日常生活中,Excel 的使用极为普遍,本文将详细介绍如何使用免费.NET库将数据写入到 Excel 中,包括文本、数值、数组、和DataTable数据的输入,需要的朋友可以参考下
    2024-07-07
  • C#创建数据库及导入sql脚本的方法

    C#创建数据库及导入sql脚本的方法

    这篇文章主要介绍了C#创建数据库及导入sql脚本的方法,涉及C#针对数据库的创建、连接、导入等相关操作技巧,需要的朋友可以参考下
    2015-12-12
  • 解析C#中的分部类和分部方法

    解析C#中的分部类和分部方法

    这篇文章主要介绍了C#中的分部类和分部方法,讲解了类的拆分和方法的定义的拆分,需要的朋友可以参考下
    2016-01-01
  • C# 导出Excel的6种简单方法实现

    C# 导出Excel的6种简单方法实现

    C# 导出 Excel 的6种简单方法:数据表导出到 Excel,对象集合导出到 Excel,数据库导出到 Excel,微软网格控件导出到 Excel,数组导出到 Excel,CSV 导出到 Excel,你都会了吗?需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • C# 窗口过程消息处理 WndProc的方法详解

    C# 窗口过程消息处理 WndProc的方法详解

    在WinForm中一般采用重写WndProc的方法对窗口或控件接受到的指定消息进行处理,本文给大家介绍C#窗口过程消息处理WndProc的方法详解,感兴趣的朋友一起看看吧
    2025-04-04

最新评论