C#使用Fody实现监控方法执行时间
脚本之家 / 编程助手:解决程序员“几乎”所有问题!
脚本之家官方知识库 → 点击立即使用
写在前面
在做性能调优的时候,经常需要跟踪具体方法的执行时间;通过插入Stopwatch的方案对代码的侵入性太高了,所以引入了 MethodTimer.Fody 类库,采用编译时注入的方式给方法动态加上Stopwatch 跟踪代码,只需要在目标方法上添加 [Time] 属性标签,即可实现注入。
需要到NuGet安装一下Fody 和 MethodTimer.Fody
PM> Install-Package Fody
PM> Install-Package MethodTimer.Fody
代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | // 方法执行时长记录器 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); } } |
调用示例:
执行结果
注意事项
有个需要特别注意的事情,否则注入代码无法生效,在项目中添加 FodyWeavers.xml 文件并将属性设置为"始终复制"。
Xml文件内容如下:
1 2 3 4 | <? 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
到此这篇关于C#使用Fody实现监控方法执行时间的文章就介绍到这了,更多相关C#监控方法执行时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
相关文章
C#探秘系列(一)——ToDictionary,ToLookup
这个系列我们看看C#中有哪些我们知道,但是又不知道怎么用,又或者懒得去了解的东西,比如这篇我们要介绍的toDictionary和ToLookup。2014-05-05C#实现观察者模式(Observer Pattern)的两种方式
这篇文章介绍了C#实现观察者模式(Observer Pattern)的两种方式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-08-08
最新评论