SuperAPI AI 工具集

performance-profiling

前端与建站

查看项目

更新于 10-15 20:30

技能介绍

用途:在改动代码前定位应用真正耗时之处,覆盖后端与前端全栈性能分析。适用场景包括诊断 Node.js 慢应用(CPU 密集、I/O 密集、内存压力)、生成并阅读火焰图、通过堆快照检测内存泄漏、用 React Profiler 分析组件渲染、测量浏览器渲染性能与数据库查询分析。不适用于基础设施监控、分布式追踪、日志聚合、负载测试与容量规划、服务间网络延迟分析、数据库表结构设计优化。

主要能力:Node.js 侧可用内置 V8 Inspector(node --inspect src/index.js、node --inspect-brk src/index.js)配合 chrome://inspect 采集 CPU 剖面;用 0x(npm install -g 0x,0x -- node src/index.js)生成交互式火焰图;用 Clinic.js(npm install -g clinic,clinic doctor/flame/bubbles)做分诊、CPU 火焰图与事件循环利用率分析;通过 perf_hooks 的 performance.eventLoopUtilization 采样 ELU,高于 80% 说明事件循环饱和,接近 0% 而响应慢说明在等 I/O。内存侧用堆快照三快照法(启动、N 次请求、2N 次请求)对比增长对象,识别闭包捕获、无淘汰缓存等泄漏模式。前端侧用 React DevTools Profiler 与 why-did-you-render(npm install @welldone-software/why-did-you-render)定位多余渲染,并给出 React.memo、useCallback、useMemo、react-window 虚拟化等模式。数据库侧用 PostgreSQL EXPLAIN (ANALYZE, BUFFERS) 读执行计划,用 pg_stat_statements 找最慢查询。

使用方式:按“先测量、后优化”流程,先判断瓶颈层级(后端 CPU/内存/I/O、前端加载/渲染/交互、未知则先加计时日志),再选对应工具采集数据,最后按优先级分类排序:数据库(>500ms 查询为严重)、事件循环(ELU>0.8 为严重)、内存(堆增长>10MB/分钟为严重)、React 渲染(组件渲染>16ms 为高)、非事件循环 CPU(单函数占 selfTime>30% 为高)。输出需给出严重度、可执行下一步与具体预估影响。

限制:资料未提供具体收费、价格、平台支持范围与效果保证;工具命令与代码示例应保持原样使用,实际结果依赖运行环境与真实负载。