前言
.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
往期精彩回顾