.NET性能分析服务

一个封装.NET诊断工具的MCP服务器,帮助AI助手分析应用性能、识别热点并生成优化建议。

  • by timheuer
  • C#
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 timheuer/dotnet-profiler-mcp

使用说明

.NET探查器MCP服务器

包装的MCP(模型上下文协议)服务器。NET诊断工具(dotnet-trace, dotnet-counters, dotnet-dump)帮助人工智能助手分析应用程序性能,识别热点,并生成优化建议。

先决条件

安装。NET全球诊断工具:

dotnet tool install -g dotnet-trace
dotnet tool install -g dotnet-counters
dotnet tool install -g dotnet-dump

可用工具

工具 说明
ListDotNetProcesses 发现跑步。可以分析的NET进程
CollectTrace 在指定持续时间内捕获CPU性能跟踪
AnalyzeTrace 从跟踪文件中提取热方法和性能瓶颈
CollectCounters 监控系统。运行时计数器(CPU、GC、内存、线程池)
CollectDump 捕获内存转储(仅限Windows/Linux)
AnalyzeDump 分析转储以获取堆统计信息、GC根目录、线程池信息
GeneratePerformanceReport 根据收集的数据创建样式化的HTML报告
CleanupTempFiles 删除所有临时分析工件

工具详细信息

ListDotNet进程

列出所有正在运行的。NET进程,可以使用dotnettrace进行分析。

CollectTrace

从运行中收集性能跟踪。NET进程。

  • processId:目标进程ID
  • 持续时间(秒):收集持续时间(默认值:30)
  • 个人资料:cpu采样、gc verbose或gc收集

AnalyzeTrace

分析.nettrace文件以识别热门方法。

  • traceFilePath:.nettrace文件的路径

收集器计数器

捕获系统。运行时指标,包括CPU使用率、GC堆大小、Gen 0/1/2计数、线程池统计数据。

  • processId:目标进程ID
  • 持续时间(秒):收集持续时间(默认值:30)
  • 刷新间隔秒数:采样间隔(默认值:1)

收集转储

捕获内存转储(仅限Windows和Linux)。

  • processId:目标进程ID
  • 转储类型:满、堆或迷你

分析泵

使用各种命令分析转储文件。

  • dumpFilePath:.dmp文件的路径
  • 命令:dumpheap-stat、gcroot、线程池或eeheap

生成绩效报告

生成一个结合了跟踪分析、计数器数据和转储分析的样式化HTML报告。

  • 应用程序名称:报告标题的名称
  • 追踪分析:热方法数据(可选)
  • 计数器数据:计数器指标(可选)
  • 转储分析:转储分析结果(可选)

清理TempFiles

删除分析会话期间创建的所有临时文件。

在当地发展

配置IDE以运行项目:

{
  "servers": {
    "dotnet-profiler-mcp": {
      "type": "stdio",
      "command": "dotnet",
      "args": ["run", "--project", "<PATH TO PROJECT DIRECTORY>"]
    }
  }
}

示例用法

询问Copilot聊天:

  • “列出我可以分析的所有.NET进程”
  • “从进程1234收集30秒的CPU跟踪”
  • “分析跟踪文件并向我展示热门方法”
  • “从我的应用程序收集性能计数器60秒”
  • “为MyApp生成HTML性能报告”

平台支持

  • 视窗:全面支持所有工具
  • Linux:全面支持所有工具
  • macOS:支持跟踪和计数器收集;不支持转储收集

发布到NuGet.org

dotnet pack -c Release
dotnet nuget push bin/Release/*.nupkg --api-key <your-api-key> --source https://api.nuget.org/v3/index.json

详细信息