前言 在.NET開發(fā)中,為了準(zhǔn)確統(tǒng)計對應(yīng)方法的執(zhí)行時間,我們最常用的方式是手動使用 Stopwatch 來顯式編寫計時邏輯,但是假如你需要大量的使用 Stopwatch 來進(jìn)行耗時統(tǒng)計的話不利于保持代碼的整潔和增加代碼的維護(hù)成本。 項目介紹 MethodTimer是一個.NET開源、免費(MIT L
在.NET開發(fā)中,為了準(zhǔn)確統(tǒng)計對應(yīng)方法的執(zhí)行時間,我們最常用的方式是手動使用 Stopwatch 來顯式編寫計時邏輯,但是假如你需要大量的使用 Stopwatch 來進(jìn)行耗時統(tǒng)計的話不利于保持代碼的整潔和增加代碼的維護(hù)成本。
MethodTimer是一個.NET開源、免費(MIT License)、輕量級的運行耗時統(tǒng)計庫,用于在編譯時自動向指定方法注入計時代碼,無需手動編寫繁瑣的計時邏輯。
創(chuàng)建名為:
MethodTimerExercise
的控制臺應(yīng)用。
安裝NuGet
PM>?Install-Package?Fody
PM>?Install-Package?MethodTimer.Fody
搜索
Fody
安裝:
搜索
MethodTimer.Fody
安裝:
通過在方法上添加
Time
屬性,MethodTimer 會在編譯時自動向
TimeMethod
注入計時代碼。
????????[Time]
????????public?static?void?TimeMethod()
????????{
????????????for?(int?i?=?0;?i?100;?i++)
????????????{
????????????????Console.WriteLine($"輸出結(jié)果{i}");
????????????}
????????}
?public?static?void?TimeMethod()
?{
??Stopwatch?stopwatch?=?Stopwatch.StartNew();
??try
??{
???for?(int?i?=?0;?i?100;?i++)
???{
????Console.WriteLine($"輸出結(jié)果{i}");
???}
??}
??finally
??{
???stopwatch.Stop();
???string?message?=?null;
???MethodTimeLogger.Log(MethodBase.GetMethodFromHandle((RuntimeMethodHandle)/*OpCode?not?supported:?LdMemberToken*/,?typeof(Program).TypeHandle),?stopwatch.Elapsed,?message);
??}
?}
運行耗時為long(毫秒):
????????///?
????????///?運行耗時為long(毫秒)
????????///?
????????public?static?class?MethodTimeLogger1
????????{
????????????public?static?void?Log(MethodBase?methodBase,?long?milliseconds,?string?message)
????????????{
????????????????Console.WriteLine($"方法:{methodBase.Name}?耗時:{milliseconds}?毫秒,信息:{message}");
????????????}
????????}
運行耗時為TimeSpan:
????????///?
????????///?運行耗時為TimeSpan
????????///?
????????public?static?class?MethodTimeLogger
????????{
????????????public?static?void?Log(MethodBase?methodBase,?TimeSpan?elapsed,?string?message)
????????????{
????????????????Console.WriteLine($"方法:{methodBase.Name}?耗時:{elapsed.TotalMilliseconds}?毫秒,信息:{message}");
????????????}
????????}
更多項目實用功能和特性歡迎前往項目開源地址查看?,別忘了給項目一個Star支持?。
該項目已收錄到C#/.NET/.NET Core優(yōu)秀項目和框架精選中,關(guān)注優(yōu)秀項目和框架精選能讓你及時了解C#、.NET和.NET Core領(lǐng)域的最新動態(tài)和最佳實踐,提高開發(fā)工作效率和質(zhì)量?右淹,歡迎大家踴躍提交PR推薦或自薦(讓優(yōu)秀的項目和框架不被埋沒?)。
小編推薦閱讀MethodTimer:一個輕量級的.NET運行耗時統(tǒng)計庫
閱讀構(gòu)建人工智能模型基礎(chǔ):TFDS和Keras的完美搭配
閱讀創(chuàng)建鴻蒙應(yīng)用的橫屏顯示直尺應(yīng)用全程解析
閱讀WiFi基礎(chǔ)(七):WiFi漫游與WiFi組網(wǎng)
閱讀遷移學(xué)習(xí):人工智能模型訓(xùn)練的絕學(xué)
閱讀如何使用 Pytorch 中的 DataSet 和 DataLoader
閱讀golang slice相關(guān)常見的性能優(yōu)化手段
閱讀連接Elasticsearch服務(wù)器的Python代碼示例
閱讀國產(chǎn)操作系統(tǒng)上實現(xiàn)RTMP推流攝像頭視頻和麥克風(fēng)聲音到流媒體服務(wù)器
閱讀使用Python讀取和導(dǎo)出NetCDF格式的多時相柵格文件
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2024 haote.com 好特網(wǎng)