agent-skills性能检查清单:优化AI代理开发的应用性能

【免费下载链接】agent-skills Production-grade engineering skills for AI coding agents. 【免费下载链接】agent-skills 项目地址: https://gitcode.com/GitHub_Trending/agentskill/agent-skills

agent-skills是一个为AI编码代理提供生产级工程技能的项目,其性能优化对于提升AI代理开发效率至关重要。本文将详细介绍agent-skills性能检查清单,帮助开发者全面优化AI代理应用性能。

核心Web指标目标

Metric Good Needs Work Poor
LCP (Largest Contentful Paint) ≤ 2.5s ≤ 4.0s > 4.0s
INP (Interaction to Next Paint) ≤ 200ms ≤ 500ms > 500ms
CLS (Cumulative Layout Shift) ≤ 0.1 ≤ 0.25 > 0.25

这些核心Web指标是衡量应用性能的关键标准,开发者应以此为目标进行性能优化。

TTFB诊断方法

当TTFB(首字节时间)缓慢(> 800ms)时,可在DevTools网络瀑布图中检查以下每个组件:

  •  DNS解析缓慢→为已知源添加<link rel="dns-prefetch"><link rel="preconnect">
  •  TCP/TLS握手缓慢→启用HTTP/2,考虑边缘部署,验证keep-alive
  •  服务器处理缓慢→分析后端,检查慢查询,添加缓存

前端性能检查清单

图片优化

  •  使用现代图片格式(WebP、AVIF)
  •  响应式图片大小(srcsetsizes
  •  图片和<source>元素有明确的widthheight(防止艺术方向中的CLS)
  •  折叠下方图片使用loading="lazy"decoding="async"
  •  Hero/LCP图片使用fetchpriority="high"且不延迟加载

JavaScript优化

  •  初始加载的捆绑包大小控制在200KB(gzip压缩后)
  •  对路由和重量级功能使用动态import()进行代码分割
  •  启用Tree shaking(验证依赖是否提供ESM并标记sideEffects: false
  •  <head>中无阻塞JavaScript(使用deferasync
  •  重型计算卸载到Web Workers(如适用)
  •  在使用相同props重新渲染的昂贵组件上使用React.memo()
  •  仅在分析显示有好处的地方使用useMemo()/useCallback()
  •  将长任务(> 50ms)分解以保持主线程可用——这是INP的主要杠杆
  •  在长时间运行的循环中使用yieldToMain模式,以便在块之间运行输入事件
  •  使用现代调度API:scheduler.yield()(首选)、带优先级的scheduler.postTask()isInputPending()仅在需要时让步
  •  使用requestIdleCallback处理可延迟、非紧急的工作(分析刷新、预取、预热)
  •  将非关键工作从事件处理程序中延迟(例如分析、日志记录),以免延迟交互响应
  •  使用async/defer加载第三方脚本,审核其大小,当内容较重时使用外观模式(聊天小部件、嵌入)

CSS优化

  •  内联或预加载关键CSS
  •  非关键样式无渲染阻塞CSS
  •  生产环境中无CSS-in-JS运行时成本(使用提取)

字体优化

  •  限制为2-3种字体族,每种2-3种字重(每增加一种字重就是另一个请求)
  •  仅使用WOFF2格式(最小,普遍支持——跳过WOFF/TTF/EOT)
  •  可能时自托管(第三方字体CDN增加DNS + TCP + TLS往返)
  •  LCP关键字体预加载:<link rel="preload" as="font" type="font/woff2" crossorigin>
  •  使用font-display: swap(或optional用于非关键)避免FOIT阻塞渲染
  •  通过unicode-range进行子集化,仅提供每个页面需要的字形
  •  需要多种字重/样式时考虑使用可变字体(一个文件替代多个文件)
  •  使用size-adjustascent-overridedescent-override调整后备字体指标,减少字体交换时的CLS
  •  在使用任何自定义字体之前考虑系统字体栈

网络优化

  •  静态资源使用长max-age + 内容哈希缓存
  •  在适当的地方缓存API响应(Cache-Control
  •  启用HTTP/2或HTTP/3
  •  为已知源预连接资源(<link rel="preconnect">
  •  在关键非图片资源上使用fetchpriority(例如关键<link rel="preload">、折叠上方的<script>)——不仅仅在<img>
  •  无不必要的重定向

渲染优化

  •  无布局抖动(强制同步布局)
  •  动画使用transformopacity(GPU加速)
  •  长列表使用虚拟化(如react-window
  •  无不必要的整页重渲染
  •  屏幕外部分使用content-visibility: autocontain-intrinsic-size跳过不可见区域的布局/绘制
  •  无unload事件处理程序和HTML响应上无Cache-Control: no-store——保留后退/前进缓存(bfcache)资格

后端性能检查清单

数据库优化

  •  无N+1查询模式(使用预加载/连接)
  •  查询有适当的索引
  •  列表端点分页(从不SELECT * FROM table
  •  配置连接池
  •  启用慢查询日志

API优化

  •  响应时间< 200ms(p95)
  •  请求处理程序中无同步重型计算
  •  批量操作代替单个调用循环
  •  响应压缩(gzip/brotli)
  •  适当的缓存(内存中、Redis、CDN)

基础设施优化

  •  CDN用于静态资产
  •  服务器位于用户附近(或边缘部署)
  •  配置水平扩展(如需要)
  •  负载均衡器的健康检查端点

性能测量命令

INP现场数据和DevTools工作流程

  1. 首先是现场数据——在优化之前,检查CrUX Vis或您的RUM工具获取真实用户的INP
  2. 识别缓慢交互——打开DevTools→性能面板→交互时记录;查找由点击/按键触发的长任务
  3. 在中端Android上测试——INP问题通常只在较慢的硬件上显现;使用真实设备或DevTools CPU节流(4×–6×减速)
# Lighthouse CLI
npx lighthouse https://localhost:3000 --output json --output-path ./report.json

# Bundle analysis
npx webpack-bundle-analyzer stats.json
# or for Vite:
npx vite-bundle-visualizer

# Check bundle size
npx bundlesize

# Web Vitals in code
import { onLCP, onINP, onCLS } from 'web-vitals';
onLCP(console.log);
onINP(console.log);
onCLS(console.log);

# INP with interaction-level detail (attribution build)
import { onINP } from 'web-vitals/attribution';
onINP(({ value, attribution }) => {
  const { interactionTarget, inputDelay, processingDuration, presentationDelay } = attribution;
  console.log({ value, interactionTarget, inputDelay, processingDuration, presentationDelay });
});

常见反模式

Anti-Pattern Impact Fix
N+1 queries Linear DB load growth Use joins, includes, or batch loading
Unbounded queries Memory exhaustion, timeouts Always paginate, add LIMIT
Missing indexes Slow reads as data grows Add indexes for filtered/sorted columns
Layout thrashing Jank, dropped frames Batch DOM reads, then batch writes
Unoptimized images Slow LCP, wasted bandwidth Use WebP, responsive sizes, lazy load
Large bundles Slow Time to Interactive Code split, tree shake, audit deps
Blocking main thread Poor INP, unresponsive UI Chunk long tasks with scheduler.yield() / yieldToMain, offload to Web Workers
Memory leaks Growing memory, eventual crash Clean up listeners, intervals, refs

通过遵循这份agent-skills性能检查清单,开发者可以全面优化AI代理应用性能,提升用户体验和开发效率。更多性能优化技巧和详细内容,请参考skills/performance-optimization/SKILL.md

要开始使用agent-skills项目,请克隆仓库:git clone https://gitcode.com/gh_mirrors/agentskill/agent-skills

【免费下载链接】agent-skills Production-grade engineering skills for AI coding agents. 【免费下载链接】agent-skills 项目地址: https://gitcode.com/GitHub_Trending/agentskill/agent-skills

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐