用途
Performance 是一个性能工程技能,用于优化 Web 应用、数据库和分布式系统。它的目标是帮助使用者分析性能瓶颈、实施缓存策略以及开展相关的性能优化工作。
主要能力
该技能将优化工作划分为五个领域,便于逐个处理:
- 前端:包体积、懒加载、Core Web Vitals
- 后端:异步处理、连接池
- 数据库:查询、索引、N+1 问题解决
- 缓存:Redis、CDN、应用程序缓存
- 负载测试:k6、性能基线
技能内置了一套性能指标作为参考:
- 前端 Core Web Vitals:LCP < 2.5s、FID < 100ms、CLS < 0.1
- 后端 API:响应时间 p95 < 500ms、吞吐量 1000+ req/sec、错误率 < 0.1%
- 数据库:查询时间 p95 < 50ms、缓存命中率 > 90%
技能还收录了常见修复做法,包括:
- N+1 问题:将循环内的多次查询改为使用
include的单次查询。 - 代码分割:使用
React.lazy懒加载重型组件。 - 缓存:先在 Redis 中查找,命中则返回,未命中再查数据库并写回缓存。
使用方式
技能遵循一套分区工作流,强调每次只优化一个领域:
- 分析(少于 500 tokens):列出优化领域,询问先处理哪一个。
- 优化单一领域(少于 800 tokens):给出建议。
- 报告进度:询问"准备进入下一个领域了吗?"
- 重复:一次处理一个领域。
技能规定每次响应不超过 2000 tokens,并遵循"先测量后优化""80-20 法则""每次响应只针对一个优化领域"等核心原则。
技能提供了一个优化检查清单,涵盖前端(包分析、代码分割、图片优化、缓存头)、后端(避免 N+1、热点数据 Redis 缓存、连接池、限流)和数据库(外键索引、对复杂查询运行 EXPLAIN、查询结果缓存)。
在开始工作前,技能会检查项目特定的学习记录,命令为:
cat .specweave/skill-memories/performance.md 2>/dev/null || echo "No project learnings yet"
项目学习记录由反思系统在开发过程中识别到修正或模式时自动捕获,用于帮助理解项目特定约定与过往决策。
适用场景
适用于需要对 Web 应用、数据库或分布式系统进行性能分析和优化的场景,例如排查瓶颈、设计缓存策略、解决 N+1 查询、实施代码分割或开展负载测试。
限制
资料中未提供关于该技能的具体平台支持、安装命令、收费或价格等信息。