.NET常用性能诊断工具包括:1. Visual Studio诊断工具用于开发阶段CPU、内存分析;2. JetBrains的dotMemory和dotTrace进行深度内存与CPU分析;3. PerfView擅长ETW事件采集,适合生产环境GC与异常分析;4. dotnet-trace和dotnet-counters支持跨平台实时监控;5. Application Insights实现云环境应用性能管理;6. dotnet-dump结合lldb用于崩溃 dump 分析。根据环境选择工具,组合使用更高效。

.NET 提供了多种性能诊断工具,帮助开发者分析应用程序的 CPU 使用率、内存分配、垃圾回收、线程行为和响应时间等问题。以下是常用的 .NET 性能诊断工具及其用途:
1. Visual Studio 内置诊断工具
Visual Studio 自带强大的性能探查器(Profiler),适合在开发阶段快速定位性能瓶颈。
- CPU 使用率分析:可查看哪些方法消耗最多 CPU 时间,支持采样和仪器化两种模式。
- 内存使用分析:跟踪对象的分配情况,识别内存泄漏或高频分配问题。
- GPU 使用情况(适用于图形应用)和 I/O 活动监控。
- 支持本地和远程调试,操作直观,集成度高。
2. dotMemory 和 dotTrace(JetBrains 工具)
由 JetBrains 提供的专业级性能分析工具,适用于深度分析 .NET 应用程序。
- dotMemory:专注于内存分析,能捕获内存快照、比较不同时间点的对象数量,帮助发现内存泄漏。
- dotTrace:用于 CPU 和异步堆栈分析,支持逐行耗时统计,可分析 Web 请求响应时间。
- 支持命令行运行,便于集成到 CI/CD 流程中。
3. PerfView
微软官方免费工具,功能强大且轻量,适合高级用户进行系统级性能分析。
- 收集 ETW(Event Tracing for Windows)事件,分析 CPU、GC、内存、异常等。
- 特别擅长分析 GC 压力 和 异常引发频率。
- 无需安装,可远程采集数据,适合生产环境使用。
- 支持 .NET Framework 和 .NET Core/.NET 5+。
4. dotnet-trace 和 dotnet-counters
跨平台命令行工具,属于 .NET CLI 工具集,适合在 Linux 或容器环境中使用。
该系统cs模式,三层架构。开发工具:vs2005+sqlserver2000本系统适合有一定基础的.net学习者参考学习。该系统处理了上一个系统中一些使用不方便的问题,和部分逻辑性问题,目前该系统已在公司大药店运行,情况良好!
- dotnet-trace:收集运行时的性能追踪信息,生成 nettrace 文件,可用 PerfView 或 VS 打开分析。
- dotnet-counters:实时监控关键性能指标,如 GC 数量、内存使用、JIT 编译时间、CPU 占用等。
- 对应用程序影响小,适合在生产环境短期监测。
5. Application Insights(Azure Monitor)
云原生应用性能管理(APM)工具,集成在 Azure 中,适用于长期监控和真实用户数据分析。
- 自动收集请求响应时间、异常、依赖调用延迟(如数据库、API)。
- 支持自定义指标和分布式追踪。
- 可在非 Azure 环境部署,适合微服务架构下的性能观察。
6. 命令行工具:dotnet-dump 和 lldb
用于分析崩溃或高内存场景下的内存转储文件(dump)。
- dotnet-dump collect:在 Linux 或 Windows 上生成核心转储文件。
- dotnet-dump analyze:通过 SOS 调试扩展分析 dump,查看线程、堆栈、对象实例等。
- 结合 lldb 可深入排查死锁、内存溢出等问题。
基本上就这些常用工具。选择哪个取决于你的环境——开发阶段可用 Visual Studio 或 JetBrains 工具,生产环境推荐 dotnet-trace、dotnet-counters 或 Application Insights,深度问题可借助 PerfView 或 dump 分析。工具组合使用效果更佳。








