File contents Performance Optimization
角色定位
性能优化必须从测量开始。这个 skill 用于定位真实瓶颈、做最小修复、再次测量,并补回归保护;不用于凭感觉提前复杂化实现。
何时使用
规格里有明确性能目标或预算。
用户、监控或日志报告慢。
Core Web Vitals、接口延迟、吞吐、内存或 CPU 有异常。
怀疑一次变更造成性能回归。
功能会处理大数据量、高并发或关键首屏路径。
不适用:没有性能证据,只是担心未来可能慢。
快速路径
写清性能症状和目标指标。
建立 baseline:真实数据或可复现 synthetic 测量。
定位瓶颈:前端、后端、数据库、网络、渲染、内存或外部依赖。
只修当前证据指向的瓶颈。
再次测量,确认指标改善。
评估复杂度代价,避免为了小收益引入长期维护成本。
加 guard:监控、benchmark、预算或回归测试。
指标选择
场景
优先指标
首屏慢
LCP、TTFB、bundle size、network waterfall
交互卡顿
INP、long task、render count、main thread profile
布局跳动
CLS、图片尺寸、字体加载、late content
API 慢
p95/p99 latency、query time、cache hit、payload size
资源异常
CPU、memory、GC、connection pool、queue depth
默认使用能复现症状的最小指标。不要同时优化所有指标。
常见定位方向
前端首屏:大图片、render-blocking CSS/JS、bundle 过大、慢 TTFB。
前端交互:长任务、重复渲染、过大 DOM、同步计算。
数据加载:瀑布请求、N+1、过大 payload、缺少分页。
后端接口:缺索引、锁等待、连接池耗尽、重复计算。
内存/CPU:无界缓存、泄漏、正则回溯、同步重计算。
数据库与连接池决策门
慢查询先在相同参数和数据条件下保存 before query plan;检查扫描方式是否合理、估算行数与实际行数偏差、额外排序,以及索引是否匹配 filter + sort 的 query shape。
新索引必须重跑 after plan。执行计划或用户指标没有改善时回退,并记录写放大与存储成本。
多个接口同时变慢且时间花在等待连接时,先查 long transaction、未释放连接和 active / idle / wait;不要默认扩大 pool。
每个进程只维护一个 pool,并证明 instances × pool max 不超过数据库连接上限;只有 autoscaling / serverless 证据成立时才考虑 multiplexing proxy。
缓存正确性决策门
只有已测量为昂贵且读显著多于写时才引入缓存;否则选择 defer / monitor。
明确一个缓存层、一个失效策略和可接受的 staleness window。
key 覆盖 tenant、viewer、locale、permissions、feature flags 等所有结果变体;旧值会造成越权、错账或错误库存的数据默认不缓存。
hot key 评估 request coalescing、stale-while-revalidate 或 lock;negative cache 使用更短 TTL,origin error 不得当成 not-found 缓存。
修复纪律
先证明瓶颈,再改代码。
一次只优化一个瓶颈。
保留 before / after 数字。
使用同一命令、条件和预算重测;改善没有超过 run-to-run variance 时视为无收益。
correctness 先于性能;测试变红或靠少做必要工作换来的提升必须回退。
neutral 或更差的变更默认回退;只为已证明有效的主指标选择最小充分 guard。
小收益大复杂度的优化要默认拒绝。
性能关键路径改动要补 benchmark、监控或预算门禁。
数据库、连接池与缓存的按需检查见 references/backend-performance-checklist.md。
输出契约
Performance evidence:
- Symptom:
- Target:
- Baseline:
- Bottleneck:
- Change:
- After:
- Regression guard:
- Trade-off:
推荐结论:
Recommendation: <optimize / monitor / defer / revert> because <baseline, measured impact, complexity cost, and rejected alternative>.
没有 baseline 和 after 数据,不要声明性能优化成立。
1 --- 2 name: zc-performance-optimization 3 description: 性能优化 4 --- 5 6 # Performance Optimization 7 8 ## 角色定位 9 10 性能优化必须从测量开始。这个 skill 用于定位真实瓶颈、做最小修复、再次测量,并补回归保护;不用于凭感觉提前复杂化实现。 11 12 ## 何时使用 13 14 - 规格里有明确性能目标或预算。 15 - 用户、监控或日志报告慢。 16 - Core Web Vitals、接口延迟、吞吐、内存或 CPU 有异常。 17 - 怀疑一次变更造成性能回归。 18 - 功能会处理大数据量、高并发或关键首屏路径。 19 20 不适用:没有性能证据,只是担心未来可能慢。 21 22 ## 快速路径 23 24 1. 写清性能症状和目标指标。 25 2. 建立 baseline:真实数据或可复现 synthetic 测量。 26 3. 定位瓶颈:前端、后端、数据库、网络、渲染、内存或外部依赖。 27 4. 只修当前证据指向的瓶颈。 28 5. 再次测量,确认指标改善。 29 6. 评估复杂度代价,避免为了小收益引入长期维护成本。 30 7. 加 guard:监控、benchmark、预算或回归测试。 31 32 ## 指标选择 33 34 | 场景 | 优先指标 | 35 |---|---| 36 | 首屏慢 | LCP、TTFB、bundle size、network waterfall | 37 | 交互卡顿 | INP、long task、render count、main thread profile | 38 | 布局跳动 | CLS、图片尺寸、字体加载、late content | 39 | API 慢 | p95/p99 latency、query time、cache hit、payload size | 40 | 资源异常 | CPU、memory、GC、connection pool、queue depth | 41 42 默认使用能复现症状的最小指标。不要同时优化所有指标。 43 44 ## 常见定位方向 45 46 - 前端首屏:大图片、render-blocking CSS/JS、bundle 过大、慢 TTFB。 47 - 前端交互:长任务、重复渲染、过大 DOM、同步计算。 48 - 数据加载:瀑布请求、N+1、过大 payload、缺少分页。 49 - 后端接口:缺索引、锁等待、连接池耗尽、重复计算。 50 - 内存/CPU:无界缓存、泄漏、正则回溯、同步重计算。 51 52 ## 数据库与连接池决策门 53 54 - 慢查询先在相同参数和数据条件下保存 before query plan;检查扫描方式是否合理、估算行数与实际行数偏差、额外排序,以及索引是否匹配 filter + sort 的 query shape。 55 - 新索引必须重跑 after plan。执行计划或用户指标没有改善时回退,并记录写放大与存储成本。 56 - 多个接口同时变慢且时间花在等待连接时,先查 long transaction、未释放连接和 active / idle / wait;不要默认扩大 pool。 57 - 每个进程只维护一个 pool,并证明 `instances × pool max` 不超过数据库连接上限;只有 autoscaling / serverless 证据成立时才考虑 multiplexing proxy。 58 59 ## 缓存正确性决策门 60 61 - 只有已测量为昂贵且读显著多于写时才引入缓存;否则选择 `defer / monitor`。 62 - 明确一个缓存层、一个失效策略和可接受的 staleness window。 63 - key 覆盖 tenant、viewer、locale、permissions、feature flags 等所有结果变体;旧值会造成越权、错账或错误库存的数据默认不缓存。 64 - hot key 评估 request coalescing、stale-while-revalidate 或 lock;negative cache 使用更短 TTL,origin error 不得当成 not-found 缓存。 65 66 ## 修复纪律 67 68 - 先证明瓶颈,再改代码。 69 - 一次只优化一个瓶颈。 70 - 保留 before / after 数字。 71 - 使用同一命令、条件和预算重测;改善没有超过 run-to-run variance 时视为无收益。 72 - correctness 先于性能;测试变红或靠少做必要工作换来的提升必须回退。 73 - neutral 或更差的变更默认回退;只为已证明有效的主指标选择最小充分 guard。 74 - 小收益大复杂度的优化要默认拒绝。 75 - 性能关键路径改动要补 benchmark、监控或预算门禁。 76 77 数据库、连接池与缓存的按需检查见 `references/backend-performance-checklist.md`。 78 79 ## 输出契约 80 81 ```text 82 Performance evidence: 83 - Symptom: 84 - Target: 85 - Baseline: 86 - Bottleneck: 87 - Change: 88 - After: 89 - Regression guard: 90 - Trade-off: 91 ``` 92 93 推荐结论: 94 95 ```text 96 Recommendation: <optimize / monitor / defer / revert> because <baseline, measured impact, complexity cost, and rejected alternative>. 97 ``` 98 99 没有 baseline 和 after 数据,不要声明性能优化成立。
zmice/zc-qwen-extension/tree/main/skills/zc-performance-optimization commit 93af4eaa3c
Frequently asked questions How do I install the Zc Performance Optimization skill? Run npx skillmds@latest add zmice/zc-performance-optimization in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
What does the Zc Performance Optimization skill do? 性能优化 It is listed under Coding & Dev Tools on SkillMD.
Is Zc Performance Optimization safe to use? This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
Which AI agents work with Zc Performance Optimization? This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Is Zc Performance Optimization free to use? Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
Who published Zc Performance Optimization? zmice (@zmice) published this skill. Their other Agent Skills are listed on their SkillMD profile.