SuperAPI AI 工具集

auditing-performance

编程与开发

查看项目

更新于 10-16 02:08

技能介绍

用途

当用户要求优化性能、减少加载时间、修复慢页面或审计 Core Web Vitals 时,可使用此技能。它提供了一套系统化的性能审计流程,覆盖前端打包、渲染、数据获取、数据库查询和静态资源等环节。

主要能力

该技能按以下步骤展开审计:

1. 分析打包体积

  • 运行 npx @next/bundle-analyzer(Next.js)或 npx vite-bundle-visualizer(Vite)来识别体积较大的依赖。
  • 查找可替换为更轻量替代方案的大型库(例如 moment → date-fns,lodash → 单独导入或原生方法)。
  • 检查打包中是否存在重复依赖。
  • 验证 tree-shaking 是否生效(没有 barrel 文件重导出引入未使用代码)。

2. 审计渲染性能

  • 识别不必要重渲染的组件——查找 JSX props 中内联创建的对象/数组/函数。
  • 检查渲染路径中应使用 useMemo 的高开销计算。
  • 验证列表使用了正确的 key props(动态列表不应使用数组索引)。
  • 查找布局抖动(在循环中先读取 DOM 测量值再写入样式)。

3. 检查数据获取

  • 识别请求瀑布——本可用 Promise.all 并行化的顺序 API 调用。
  • 查找本可在服务端获取却在客户端获取的数据。
  • 检查大数据集是否缺少分页。
  • 验证 API 响应是否过度获取(返回客户端不需要的字段)。

4. 数据库查询优化

  • 查找 N+1 查询模式(列表中每个条目一次查询)。
  • 检查 WHERE、ORDER BY 和 JOIN 子句中使用的列是否缺少索引。
  • 识别可使用指定列 SELECT 而非 SELECT * 的查询。
  • 查找缺失的连接池。

5. 检查静态资源

  • 验证图片使用现代格式(WebP/AVIF)且尺寸合适。
  • 检查首屏以下的图片是否缺少 loading="lazy"。
  • 验证字体使用 font-display: swap 并已预加载。
  • 检查是否存在阻塞渲染的 CSS 或 JavaScript。

6. 生成建议

  • 产出按影响程度(高/中/低)排序的优化清单,并为每项标注预估工作量。

使用方式

在用户提出性能相关需求时调用此技能,按上述步骤逐项审计,并最终输出优先级排序的优化建议。

适用场景

  • 优化应用性能、缩短加载时间。
  • 修复慢页面。
  • 审计 Core Web Vitals。
  • 排查打包体积、渲染、数据获取、数据库查询和资源加载方面的性能瓶颈。

限制与注意事项

  • 关注可衡量的改进——使用 Lighthouse、WebPageTest 或 DevTools 的 Performance 面板。
  • 不要过早优化——先做性能分析,再优化瓶颈。
  • 对于 React 应用,使用 React DevTools Profiler 识别慢组件。
  • 关于该技能的具体收费、价格、支持平台等信息,资料中暂未提供。