前言
.NET9它是一個非常完善的版本,對於雲原生和AI的支持度也是前所未有。但是這兩種技術棧對於效能的敏感度也是苛刻的,對於大部份人來說,用LLDB/GDB/Windbg來進行效能偵錯或者尋找,過於艱澀。本篇來看下.NET9裏面提供的幾個工具,可以全方位,無死角,全景式的覆蓋效能診斷,簡單易用。
工具介紹
dotnet-dump - 轉儲收集和分析實用工具。 dotnet-dump CLI 全域工具是收集和分析 Windows 和 Linux 轉儲中的托管數據結構的方法,無需任何本機偵錯程式。
dotnet-gcdump - 收集即時 .NET 行程的 gcdump 的堆分析工具。 dotnet-gcdump 工具是一種跨平台 CLI 工具,用於收集即時 .NET 行程的 gcdump。它是使用 EventPipe 技術構建的,該技術是 Windows 上 ETW 的跨平台替代方案。Gcdump 是透過觸發 GC 建立的 在目標行程中,開啟特殊事件,並從事件流中重新生成物件根的圖。這允許在行程執行時以最小的開銷收集 gcdump。
dotnet-trace - 啟用正在執行的 .NET Core 應用程式到本地跟蹤檔的事件集合。 dotnet-trace 工具是一種跨平台 CLI 全域工具,支持在不涉及任何本機探查器的情況下收集正在執行的行程的 .NET Core 跟蹤。它是圍繞 .NET Core 執行時的 EventPipe 技術構建的,作為 Windows 上的 ETW 和 Linux 上的 LTTng 的跨平台替代方案,後者僅在單個平台上執行。
dotnet-counters - 即時監視 .NET Core 應用程式的效能計數器。 dotnet-counters 是一種效能監視工具,用於臨時執行狀況監視或一級效能調查。它可以觀察透過 API ( https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.tracing.eventcounter ) 釋出的效能計數器值。例如,可以快速監視 CPU 使用率或 .NET Core 應用程式中引發的異常率等內容,以檢視是否有任何可疑情況,然後再使用 PerfView 或 dotnet-trace 進行更嚴重的效能調查。
上面的四個工具是微軟官方提供,可以全方位,全面覆蓋,全景式的搞定.NET9裏面的任何效能問題,從而達到快速定位,快速解決效能問題的能力。讓你不會用LLDB這種重量級偵錯工具,也可以輕松的定位,尋找,解決效能問題。
用法
關於這幾個工具的用法,可以參考微軟官方中文文件
dotnet-dump參考地址:https://learn.microsoft.com/zh-cn/dotnet/core/diagnostics/dotnet-dump
dotnet-gcdump參考地址:https://learn.microsoft.com/zh-cn/dotnet/core/diagnostics/dotnet-gcdump
dotnet-trace參考地址:https://learn.microsoft.com/zh-cn/dotnet/core/diagnostics/dotnet-trace
dotnet- counters參考地址: https://learn.microsoft.com/zh-cn/dotnet/core/diagnostics/dotnet-counters
往期精彩回顧