.NET垃圾回收GC診斷工具dotnet-gcmon使用

今天介紹一個(gè)新的診斷工具 dotnet-gcmon, 也是全局 .NET CLI 工具, 它可以監(jiān)控到 .NET 程序的 GC, 能獲取到的信息也很詳細(xì), 另外 maoni 大佬也是其中的開(kāi)發(fā)者之一。
安裝 gcmon
和其他的 dotnet 診斷工具一樣, 你可以使用以下命令,進(jìn)行全局安裝
dotnet tool install -g dotnet-gcmon
參數(shù)介紹
| 參數(shù) | 描述 |
|---|---|
| n | 進(jìn)程名, dotnet 應(yīng)用的進(jìn)程名 |
| p | 進(jìn)程ID, dotnet 應(yīng)用的 Process ID |
| m | 最小 GC 暫停持續(xù)時(shí)間(以毫秒為單位),可選 |
| c | 指定一個(gè) yaml 配置文件路徑, 可選 |
使用
使用非常簡(jiǎn)單, 我們需要指定被監(jiān)控的 dotnet 應(yīng)用的進(jìn)程名或者是進(jìn)程ID (PID), 這里也可以使用另外一個(gè)診斷工具 dotnet-trace, 安裝命令如下
dotnet tool install -g dotnet-trace
然后運(yùn)行dotnet trace ps獲取所有的 dotnet 進(jìn)程

接下來(lái), 運(yùn)行dotnet gcmon -p 21904, 開(kāi)始監(jiān)控 dotnet 應(yīng)用, 診斷工具會(huì)輸出下面的信息

在診斷工具運(yùn)行的時(shí)候,按下s鍵,會(huì)輸出當(dāng)前 GC 的整體和每一代的狀態(tài)

另外還可以使用 yaml 配置文件, 靈活配置診斷工具輸出列,具體可以參考 github。
總結(jié)
dotnet gcmon 是一個(gè)小而實(shí)用的診斷工具, 并且還在迭代中, 在對(duì)于代碼無(wú)侵入的情況下, 排查問(wèn)題還是很方便的, 另外 .NET 現(xiàn)在已經(jīng)有近十個(gè)診斷工具了!
gcmon 的工作原理是什么呢? 其實(shí)主要是調(diào)用了 CLR 運(yùn)行時(shí)團(tuán)隊(duì)提供的一個(gè)診斷庫(kù), Microsoft.Diagnostics.NETCore.Client, 這個(gè)庫(kù)功能就非常強(qiáng)大了, 各種運(yùn)行時(shí)信息都可以拿到, 當(dāng)然你也可以用它實(shí)現(xiàn)一個(gè)診斷工具, 這個(gè)庫(kù)是基于 EventPipe, IPC 等實(shí)現(xiàn)的, 還是很復(fù)雜的。
https://github.com/Maoni0/realmon
以上所述是小編給大家介紹.NET垃圾回收GC診斷工具dotnet-gcmon的使用方法,希望對(duì)大家有所幫助,非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
ASP.NET DataTable去掉重復(fù)行的2種方法
這篇文章主要介紹了ASP.NET DataTable去掉重復(fù)行的2種方法,本文直接給出去重代碼,需要的朋友可以參考下2015-02-02
MVC+EasyUI+三層新聞網(wǎng)站建立 主頁(yè)布局的方法(五)
這篇文章主要為大家詳細(xì)介紹了MVC+EasyUI+三層新聞網(wǎng)站建立的第五篇,教大家如何進(jìn)行主頁(yè)布局,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
.NET的強(qiáng)類型字符串(Strongly typed string)詳解
強(qiáng)類型字符串是一種編譯時(shí)類型檢查的字符串表示方法,類似于枚舉,但具有更好的擴(kuò)展性和約束性,強(qiáng)類型字符串可以提供更好的可讀性和維護(hù)性,并且可以避免運(yùn)行時(shí)錯(cuò)誤,本文介紹什么是.NET的強(qiáng)類型字符串(Strongly typed string),感興趣的朋友一起看看吧2024-12-12
asp.net 購(gòu)物車(chē)的實(shí)現(xiàn)淺析
我從來(lái)沒(méi)有進(jìn)行過(guò)正式的web開(kāi)發(fā),但是我一直喜歡web,所以這篇文章也是我轉(zhuǎn)行web的一個(gè)開(kāi)始吧?;蚨嗷蛏傥乙矃⒖剂藥讉€(gè)網(wǎng)站的實(shí)現(xiàn)(當(dāng)然了,只是看看大概的功能而已),所以也請(qǐng)大家多多指教。2011-02-02
在VS2009中集成自動(dòng)上傳nuget包到服務(wù)器的解決方案
這篇文章主要介紹了在VS2009中集成自動(dòng)上傳nuget包到服務(wù)器的解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
ASP.NET/C#中如何調(diào)用動(dòng)態(tài)鏈接庫(kù)DLL
這篇文章主要為大家詳細(xì)介紹了ASP.NET/C#中如何調(diào)用動(dòng)態(tài)鏈接庫(kù)DLL,感興趣的小伙伴們可以參考一下2016-03-03

