| name | hello-perf |
| description | 优化性能、处理数据库查询、实现缓存、懒加载、分页、打包优化,或代码涉及大数据集循环、并发操作、内存管理时使用。 |
性能相关代码必须遵循以下规范。
编码前
先定位性能瓶颈(I/O / 计算 / 内存),再写代码。
查询优化
- 禁止 N+1 查询:使用 JOIN、批量加载、dataloader
- 大数据集必须分页,不一次加载全部
- 数据库索引覆盖常用查询条件
- 只查需要的字段(SELECT 具体列,不用 SELECT *)
缓存策略
- 读多写少的数据 → 缓存(内存/Redis)
- 设置合理的 TTL
- 缓存失效策略:写时失效 > 定时过期
- 防止缓存穿透(空值缓存)和雪崩(随机 TTL)
前端性能
- 代码分割 + 路由级懒加载
- 图片:WebP/AVIF、懒加载、srcset 响应式
- 声明 width/height 或 aspect-ratio 防止布局偏移
- 关键 CSS 内联,非关键 CSS 异步加载
- 50+ 项列表使用虚拟滚动
算法与并发
- 注意时间复杂度,禁止嵌套循环处理大数据集(O(n²)+)
- Map/Set 查找 O(1) vs Array.includes O(n)
- 批量操作优于逐条操作
- 高频事件(scroll/resize/input)使用 debounce/throttle
交付检查