当前位置: 首页 > news >正文

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>

 

http://www.lryc.cn/news/248482.html

相关文章:

  • J2EE征程——第一个纯servletCURD
  • BatchOutput PDF for Mac(PDF 批量处理软件)
  • 记一次oracle错误处理
  • hugging face下载dataset时候出现You must be authenticated to access it.问题解决
  • 数据结构---树
  • tomcat调优配置
  • 基于深度学习的点云三维目标检测方法综述
  • Linux命令中的符号
  • BTCPay Server:免费、安全、开源的比特币支付处理器 | 开源日报 No.90
  • 【数据挖掘】国科大刘莹老师数据挖掘课程作业 —— 第三次作业
  • Windows挂载NFS
  • 数据结构第五课 -----二叉树的代码实现
  • 优橙内推北京专场——5G网络优化(中高级)工程师
  • Mysql DDL语句建表及空字符串查询出0问题
  • 深入ArkTS:应用状态管理与LocalStorage装饰器详解【鸿蒙专栏-11】
  • 管理Android12系统的WLAN热点
  • 从0开始学习JavaScript--JavaScript 中 `let` 和 `const` 的区别及最佳实践
  • 【上海大学数字逻辑实验报告】二、组合电路(一)
  • lodash中foreach踩坑
  • Unity C++交互
  • 人工智能-优化算法之动量法
  • 【MySQL】InnoDB中的索引
  • 《软件工程原理与实践》复习总结与习题——软件工程
  • 软工2021上下午第六题(组合模式)
  • 在Spring Boot中使用不同的日志
  • 运维知识点-openResty
  • 微服务中配置Nacos热更新
  • ABAP2XLSX 的安装和demo
  • 记一篇Centos7安装innodb_ruby
  • VMware虚拟机安装和使用教程(附最新安装包+以ubuntu为例子讲解)