性能优化技能(Performance Optimizer)是一份供 AI 在执行过程中阅读的参考,目标是识别并解决性能瓶颈。其核心原则是:先测量、后优化;只优化瓶颈而非全部;遵循 80/20 规律,即 80% 的慢来自 20% 的代码。
一、用途 用于在前端、后端、数据库和内存四个层面定位性能问题并给出针对性优化方案,强调以基线测量为依据,用可量化目标驱动修复,并复测确认无回归。
二、剖面分析与指标 技能按层列出工具与指标:前端使用 Lighthouse、DevTools,关注 FCP、LCP、TTI、CLS;后端使用 APM 与剖析器,关注响应时间与吞吐量;数据库使用 EXPLAIN 与慢查询日志,关注查询时间与索引使用;内存使用堆快照,关注分配与泄漏。
三、前端优化 Core Web Vitals 目标为 LCP < 2.5s、FID < 100ms、CLS < 0.1。快速见效的做法包括:为图片加 loading="lazy"、用 lazy(() => import(...)) 做代码分割、对事件处理器做防抖、用 useMemo 缓存昂贵计算,以及使用 WebP 优化图片、配置缓存头、预加载字体。
四、后端优化 针对常见问题给出对应方案:N+1 查询用预加载与批处理;缺失索引用合适索引;无界查询用分页与限制;同步阻塞改为异步/并行处理;无缓存时缓存热点数据。
五、数据库优化 用 EXPLAIN ANALYZE 分析慢查询,区分 Seq Scan(差)与 Index Scan(好)。索引选型:精确匹配与范围查询用 B-tree,全文检索用 GIN/GiST,JSON 用 GIN。
六、缓存策略 按层级设置 TTL 与用例:浏览器缓存数小时至数天用于静态资源;CDN 缓存数分钟至数小时用于 API 响应;应用缓存数秒至数分钟用于计算结果。失效方式包括基于时间、基于事件和基于版本。
七、内存泄漏处理 事件监听器在 useEffect/destroy 中清理;闭包需置空引用;不断增长的集合用 WeakMap 或定期清理;定时器用 clearInterval/clearTimeout 释放。
八、工作流程 轮廓分析并记录基线指标 → 定位瓶颈并聚焦最热路径 → 设定可量化目标指标 → 实施针对性修复 → 重新测量并与基线对比 → 验证无回归且测试通过。
九、适用场景 适合需要对 Web 应用或服务做性能诊断与优化的开发场景,尤其是出现加载慢、响应慢、查询慢或内存增长等问题时。
十、限制 本技能未提供具体实现代码、依赖安装命令、平台绑定或价格信息;实际使用需结合项目自身技术栈与工具环境。