Performance Profiler 是一个系统化性能剖析技能,层级标记为 POWERFUL,类别为工程(Engineering),领域为性能工程(Performance Engineering)。它面向 Node.js、Python 和 Go 应用,帮助定位 CPU、内存和 I/O 瓶颈。
核心能力
- CPU 剖析:Node.js 火焰图、Python 的 py-spy、Go 的 pprof。
- 内存剖析:堆快照、泄漏检测、GC 压力分析。
- 打包体积分析:webpack-bundle-analyzer、Next.js bundle analyzer。
- 数据库优化:EXPLAIN ANALYZE、慢查询日志、N+1 查询检测。
- 负载测试:k6 脚本、Artillery 场景、爬坡(ramp-up)模式。
- 前后测量:建立基线、剖析、优化、验证。
适用场景
- 应用变慢但无法确定瓶颈位置。
- 发布前 P99 延迟超出 SLA。
- 内存占用随时间增长(疑似内存泄漏)。
- 新增依赖后打包体积上升。
- 为流量高峰做准备(上线前做负载测试)。
- 数据库查询耗时超过 100ms。
使用方式
通过脚本对项目进行性能风险指标分析,支持文本与 JSON 两种输出,JSON 便于接入 CI。安装与运行命令保留原文:
# Analyze a project for performance risk indicators
python3 scripts/performance_profiler.py /path/to/project
# JSON output for CI integration
python3 scripts/performance_profiler.py /path/to/project --json
# Custom large-file threshold
python3 scripts/performance_profiler.py /path/to/project --large-file-threshold-kb 256
黄金法则:先测量
在任何优化之前先建立基线,记录 P50、P95、P99 延迟、RPS、错误率与内存使用情况。错误做法是“我认为这个 N+1 查询很慢,直接修它”;正确做法是:剖析 → 确认瓶颈 → 修复 → 再次测量 → 验证改进。
Node.js 剖析
Node.js 剖析的具体细节参见 references/profiling-recipes.md。
参考资料
- references/profiling-recipes.md:Node.js/Python/Go 剖析命令、火焰图生成、堆快照。
- references/optimization-playbook.md:前后测量模板、快速见效优化清单(数据库/Node/打包/API)、常见陷阱与最佳实践。
限制与未知信息
官方文本(official_text)为空,关于具体支持的框架版本、各类操作系统兼容性、运行环境要求、是否收费或价格、以及更详细的输出格式说明,资料中暂未提供。