.Net 诊断工具

起因

本文讲的诊断工具,主要是针对.Net Core 3.1(个别功能不支持)及之后的版本,如.Net 5/.Net 6,对早期的.Net Framework是完全不支持的.即使是.Net Core 3.0之前的版本也不支持,是因为这些工具多数依赖EventPipe组件,EventPipe是CoreCLR的一部分,当然Mono也在增加对EventPipe的支持,所以是支持跨平台的.

这些诊断工具能帮我干什么? 
  1. 快速定位问题,分析性能瓶颈在哪里
  2. 可以分析GC,根据内存分配针对性的进行调优.
  3. 统计数据,如Socket发送的数据/Http连接数等
用数据说话,更容易定位问题,更快的解决问题
在.Net 5 所支持的诊断工具,有dotnet-counters,dotnet-trace,dotnet-dump,dotnet-gcdump等

安装工具

#安装监视工具
dotnet tool install -g dotnet-counters

#安装转储工具
dotnet tool install -g dotnet-dump

#安装gc转储工具
dotnet tool install -g dotnet-gcdump

#安装trace收集事件
dotnet tool install -g dotnet-trace

#安装stack 获取堆栈信息
dotnet tool install -g dotnet-stack

打印安装好的dotnet 诊断工具

结论

没有如何使用这些工具,是因为我本身还不怎么会用.不管怎么样,这些工具能让我们更快的解决问题.本身EventPipe组件也是一直开发的状态.
EventPipe一直处于快速的发展中
秋风 2021-08-08