mcpField
P
performance-profiler

performance-profiler

github.com/borghei开发1.0k104 次安装1 周前更新
代码仓库

关于 performance-profiler

performance-profiler 是面向 Node.js、Python 和 Go 应用的性能分析技能,指导开发者先建立基线,再定位瓶颈、实施改动并验证结果,涵盖 CPU、内存、数据库、构建包和负载。

主要功能

  1. 01CPU 分析与火焰图
  2. 02内存泄漏分析
  3. 03数据库查询优化
  4. 04前端构建包分析
  5. 05使用 k6 进行负载测试
  6. 06改动前后指标对比

适用场景

  1. 01排查原因不明的应用变慢
  2. 02追踪内存增长或疑似泄漏
  3. 03检查延迟是否符合 SLA
  4. 04在流量高峰前测试容量

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/borghei/claude-skills --skill performance-profiler

安装后在 Claude Code 中输入/performance-profiler确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
cpu-and-memory-profiling.md
database-and-bundle.md
load-testing-and-methodology.md
scripts/
benchmark_reporter.py
bottleneck_detector.py
resource_analyzer.py

详细介绍

性能分析器

对 Node.js、Python 和 Go 应用进行系统化性能分析。使用火焰图定位 CPU 瓶颈,通过堆快照检测内存泄漏,分析打包体积,优化数据库查询,检测 N+1 模式,并使用 k6 和 Artillery 运行负载测试。严格遵循先测量的方法:建立基线、定位瓶颈、修复并验证改进效果。

黄金法则 — 先测量: 分析 → 确认瓶颈 → 修复 → 再次测量 → 验证改进效果。每项优化都需要基线指标、分析器证据、修复措施、修复后指标和差值。完整规则见 references/cpu-and-memory-profiling.md。

核心能力

  • CPU 分析 — Clinic.js/V8 火焰图(Node)、py-spy/cProfile/scalene(Python)、pprof(Go)、Chrome DevTools(浏览器)。
  • 内存分析 — 堆快照及前后对比、GC 压力分析、泄漏检测、对象保留关系图。
  • 数据库优化 — 读取 EXPLAIN ANALYZE 执行计划、检测并批处理 N+1 查询、慢查询日志、识别缺失索引、确定连接池大小。
  • 打包分析 — webpack/Next.js 分析器、摇树优化、动态导入、识别大型依赖。
  • 负载测试 — k6 渐增负载脚本、在 CI 中强制执行 SLA 阈值、跟踪 P50/P95/P99 延迟、模拟并发用户。

适用场景

  • 应用运行缓慢,但不知道瓶颈在哪里。
  • 发布前的 P99 延迟超过 SLA。
  • 内存使用量随时间不断增长(疑似泄漏)。
  • 添加依赖后打包体积增大。
  • 为流量激增做准备(上线前进行负载测试)。
  • 数据库查询耗时超过 100ms,或验证依赖升级后没有性能回退。

先澄清

开始分析前,请确认以下输入。如果其中某项缺失或含糊不清,且会影响结果,请询问;如果不会影响结果,则采用合理的默认值并说明所用选项。

  • 运行时和症状: Node / Python / Go,以及 CPU / 内存 / 打包体积 / 查询 / 流量激增(用于选择分析器和工具链)。
  • 基线和 SLA 目标: 当前数值以及需要达到的 P95/P99(或体积)阈值(先测量的方法需要两者才能验证差值)。
  • 环境: 本地 / 预发布 / 生产环境决定了安全的分析方法,以及是否允许进行负载测试。

只询问与当前请求最相关的两三个输入,不要询问整个清单。如果用户希望立即获得结果,请直接给出结果,并在开头说明假设。

工具

工具用途命令
benchmark_reporter.py解析基准测试结果,并报告相对于阈值的回退或改进python scripts/benchmark_reporter.py results.json --fail-on-regression
bottleneck_detector.py分析日志/追踪数据,标记高延迟、慢查询和慢跨度python scripts/bottleneck_detector.py trace.json --latency-threshold 200
resource_analyzer.py分析 CPU/内存/磁盘使用数据,并标记异常和趋势python scripts/resource_analyzer.py metrics.json --cpu-threshold 80

这三个工具都接受文件路径或表示标准输入的 -,并支持 --json。

参考资料

加载与任务相符的参考资料——保持此文件精简,按需查阅详细内容:

  • references/cpu-and-memory-profiling.md — 完整的先测量再优化规则、Node.js CPU 性能分析(Clinic.js 火焰图、V8 CPU 性能分析文件)以及内存泄漏检测(Node 堆快照、Python memray/tracemalloc)。排查 CPU 或内存问题时阅读。
  • references/database-and-bundle.md — EXPLAIN ANALYZE 工作流、N+1 检测模式和中间件脚本、Next.js 打包分析器设置、快速体积检查以及常见打包优化收益表。优化查询或打包体积时阅读。
  • references/load-testing-and-methodology.md — 完整的 k6 负载测试脚本、前后测量模板、快速见效的优化清单、常见陷阱、最佳实践、故障排查表和成功标准。进行负载测试或记录优化成果时阅读。

范围与限制

此技能涵盖:

  • 使用火焰图和堆快照对 Node.js、Python 和 Go 应用进行 CPU 和内存性能分析
  • 数据库查询优化,包括解读 EXPLAIN ANALYZE、检测 N+1 问题和索引建议
  • webpack 和 Next.js 项目的前端打包分析及体积缩减策略
  • 使用 k6 进行负载测试的方法,包括渐增模式、阈值执行和 CI 集成

此技能不涵盖:

  • 应用性能监控(APM)平台的设置和配置(Datadog、New Relic、Grafana)——请参阅 engineering/observability-designer
  • 基础设施层面的性能调优(内核参数、网络栈、容器资源限制)——请参阅 engineering/senior-devops
  • 面向安全的性能问题,例如 DDoS 缓解或速率限制——请参阅 engineering/senior-security
  • 移动应用性能分析(iOS Instruments、Android Profiler)——请参阅 engineering/senior-mobile

集成点

技能集成方式数据流
engineering/observability-designer性能分析结果用于指导可观测性仪表板设计;告警阈值根据性能分析基线推导性能分析器基线和 SLA 阈值 → Prometheus/Grafana 告警规则和仪表板面板
engineering/ci-cd-pipeline-builderk6 负载测试和打包体积检查作为 CI 流水线关卡集成k6 阈值配置和打包预算脚本 → CI 流水线阶段定义
engineering/database-designer查询优化建议为架构设计决策提供依据;索引建议反馈到架构迁移中EXPLAIN ANALYZE 结果和索引建议 → 架构迁移文件和索引定义
engineering/senior-backend后端架构决策纳入性能分析数据;通过负载测试验证连接池大小和缓存策略性能分析报告和负载测试结果 → 架构决策记录和实施指南
engineering/tech-debt-tracker将性能回退和未解决的瓶颈作为技术债务事项跟踪,并记录其测量影响前后测量报告和未解决的发现 → 已量化成本的技术债务待办事项
engineering/senior-frontend打包分析结果推动前端优化工作;代码拆分和延迟加载决策以性能分析数据为依据打包分析器输出和 Lighthouse 得分 → 前端优化任务和组件重构计划

评论

支持 Markdown