SuperAPI AI 工具集

performance-engineering

编程与开发

查看项目

更新于 10-16 00:03

技能介绍

用途:系统化诊断、测量并改进应用性能,覆盖从用剖析器和火焰图定位瓶颈、用堆快照消除内存泄漏,到用严格基准测试验证改进的完整生命周期,适用于 Node.js 后端、浏览器前端和数据库查询层。核心理念是先测量、后优化。

触发场景:生产环境 P95/P99 延迟高或响应慢;内存无界增长或 OOM 崩溃;需要剖析 CPU 或生成火焰图;需要基准测试对比两种实现;排查事件循环阻塞或浏览器长任务;降低 JS 包体积、TTI 或 Core Web Vitals;调优 GC、堆上限或工作线程池;搭建持续性能监控或性能预算;调试 N+1 查询、慢查询或连接池耗尽。不适用于无性能目标的通用代码重构,以及容量规划与基础设施扩容。

主要能力与用法:用 node --prof 与 node --prof-process 或 npx 0x -- node server.js 生成火焰图;用 v8.writeHeapSnapshot() 采集前后两份堆快照对比定位泄漏,配合 WeakRef 与 FinalizationRegistry 避免闭包泄漏;用 benchmark 库做含预热、多轮迭代的微基准;用 perf_hooks 检测事件循环延迟,用 worker_threads 将 CPU 密集任务移出主线程;用 webpack-bundle-analyzer 或 vite-bundle-visualizer 审计包体积,按需导入与动态 import 做代码分割;用 web-vitals 上报 CLS、INP、LCP、FCP、TTFB;用 DataLoader 批处理解决 N+1,用 pg 连接池并确保 release。

关键原则:始终先测量;只优化瓶颈(Amdahl 定律);预先设定性能预算;在接近生产的负载与数据量下测试;避免过早优化。报告延迟须同时给出 P50、P95、P99,而非平均值。

限制与注意事项:开发环境剖析结果不具代表性,应在生产构建与生产变量下进行;微基准须防止死代码消除;堆快照在 GC 期间采集会虚高;连接池耗尽常伪装成慢查询;worker 线程默认不共享内存,序列化开销可能超过收益。首次激活时技能会检查配套技能是否安装,缺失时提示可用 npx skills add AbsolutelySkilled/AbsolutelySkilled --skill <name> 安装。