C#使用Fody實現(xiàn)監(jiān)控方法執(zhí)行時間
寫在前面
在做性能調(diào)優(yōu)的時候,經(jīng)常需要跟蹤具體方法的執(zhí)行時間;通過插入Stopwatch的方案對代碼的侵入性太高了,所以引入了 MethodTimer.Fody 類庫,采用編譯時注入的方式給方法動態(tài)加上Stopwatch 跟蹤代碼,只需要在目標(biāo)方法上添加 [Time] 屬性標(biāo)簽,即可實現(xiàn)注入。
需要到NuGet安裝一下Fody 和 MethodTimer.Fody
PM> Install-Package Fody
PM> Install-Package MethodTimer.Fody
代碼實現(xiàn)
// 方法執(zhí)行時長記錄器 public static class MethodTimeLogger { public static void Log(MethodBase methodBase, long milliseconds, string message) { Console.WriteLine($"方法:{methodBase.Name} 耗時:{milliseconds}秒, 信息:{message}"); } } // 測試目標(biāo)類 public class MethodTracer { [Time("跟蹤測試")] public void TestMethod() { Console.WriteLine("TestMethod: 開始執(zhí)行"); Thread.Sleep(123); } }
調(diào)用示例:
var methodTracer = new MethodTracer(); methodTracer.TestMethod();
執(zhí)行結(jié)果
注意事項
有個需要特別注意的事情,否則注入代碼無法生效,在項目中添加 FodyWeavers.xml 文件并將屬性設(shè)置為"始終復(fù)制"。
Xml文件內(nèi)容如下:
<?xml version="1.0" encoding="utf-8"?> <Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> <MethodTimer /> </Weavers>
直接黏貼以下內(nèi)容,vs會自動生成xsd
<Weavers> <MethodTimer/> </Weavers>
到此這篇關(guān)于C#使用Fody實現(xiàn)監(jiān)控方法執(zhí)行時間的文章就介紹到這了,更多相關(guān)C#監(jiān)控方法執(zhí)行時間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#中數(shù)組、ArrayList和List三者的區(qū)別詳解及實例
這篇文章主要介紹了C#中數(shù)組、ArrayList和List三者的區(qū)別詳解及實例的相關(guān)資料,需要的朋友可以參考下2016-12-12DevExpress實現(xiàn)GridControl刪除所有行的方法
這篇文章主要介紹了DevExpress實現(xiàn)GridControl刪除所有行的方法,對于C#初學(xué)者有一定的參考借鑒價值,需要的朋友可以參考下2014-08-08C#中使用Spire.XLS來操作Excel數(shù)據(jù)的實現(xiàn)
本文主要介紹了C#中使用Spire.XLS來操作Excel數(shù)據(jù)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04通過C#實現(xiàn)在Excel單元格中寫入文本、或數(shù)值
在商業(yè)、學(xué)術(shù)和日常生活中,Excel 的使用極為普遍,本文將詳細(xì)介紹如何使用免費.NET庫將數(shù)據(jù)寫入到 Excel 中,包括文本、數(shù)值、數(shù)組、和DataTable數(shù)據(jù)的輸入,需要的朋友可以參考下2024-07-07C#創(chuàng)建數(shù)據(jù)庫及導(dǎo)入sql腳本的方法
這篇文章主要介紹了C#創(chuàng)建數(shù)據(jù)庫及導(dǎo)入sql腳本的方法,涉及C#針對數(shù)據(jù)庫的創(chuàng)建、連接、導(dǎo)入等相關(guān)操作技巧,需要的朋友可以參考下2015-12-12C# 導(dǎo)出Excel的6種簡單方法實現(xiàn)
C# 導(dǎo)出 Excel 的6種簡單方法:數(shù)據(jù)表導(dǎo)出到 Excel,對象集合導(dǎo)出到 Excel,數(shù)據(jù)庫導(dǎo)出到 Excel,微軟網(wǎng)格控件導(dǎo)出到 Excel,數(shù)組導(dǎo)出到 Excel,CSV 導(dǎo)出到 Excel,你都會了嗎?需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09