ワンクリックで
bp-performance-optimization
提供性能优化方法论、设计原则和具体优化规则。在编写代码、优化性能瓶颈、进行 code review 时使用,涵盖 CPU、内存、I/O、并发等维度。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
提供性能优化方法论、设计原则和具体优化规则。在编写代码、优化性能瓶颈、进行 code review 时使用,涵盖 CPU、内存、I/O、并发等维度。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | bp-performance-optimization |
| description | 提供性能优化方法论、设计原则和具体优化规则。在编写代码、优化性能瓶颈、进行 code review 时使用,涵盖 CPU、内存、I/O、并发等维度。 |
本 skill 是参考资料,不是工作流入口。
在应用本 skill 的优化规则前,必须确认:
优化目标是否明确?
是否已经定位瓶颈?
如果以上问题不清楚:
workflow-code-generation Skill(它会引导需求澄清)优化的本质是简化。 复杂的代码通常更大、更慢、更耗能。
| 阶段 | 要点 |
|---|---|
| 1. 定义目标 | 明确成功标准:延迟?吞吐?内存?功耗? |
| 2. 设计评估 | 糟糕的设计无法靠优化弥补 |
| 3. Profile | 关注消耗指标(指令数、cache miss),不只是时间 |
| 4. 算法优先 | 先优化数据结构和算法 |
| 5. 应用规则 | 对热点应用具体优化规则 |
| 原则 | 说明 |
|---|---|
| 简单直接 | 避免过度抽象;能删代码比加代码好 |
| 连续优于分散 | vector/数组优于链表(cache 友好) |
| 直接优于间接 | 减少指针追逐,每次间接访问都是潜在 cache miss |
| 独占优于共享 | unique_ptr 无开销;shared_ptr 有原子操作开销 |
| 扁平优于深层 | 避免复杂继承层次和虚函数派发 |
| Early Binding | 把工作提前做一次,避免重复做多次 |
| 模块化 | 清晰契约,允许局部替换而不改架构 |
| 规则 | 说明 |
|---|---|
| Data Structure Augmentation | 添加冗余信息加速操作 |
| Precomputation | 预计算并存储结果 |
| Caching | 缓存频繁访问的数据 |
| Lazy Evaluation | 延迟计算直到真正需要 |
详见 reference/space-for-time.md
| 规则 | 说明 |
|---|---|
| Packing | 紧凑存储减少内存占用 |
| Overlaying | 复用内存空间 |
| Interpreters | 用解释器压缩程序表示 |
详见 reference/time-for-space.md
| 规则 | 说明 |
|---|---|
| Code Motion | 将循环不变量移出循环 |
| Combining Tests | 合并测试条件,使用哨兵 |
| Loop Unrolling | 展开循环减少迭代开销 |
| Loop Fusion | 合并相同范围的循环 |
| 规则 | 说明 |
|---|---|
| Algebraic Identities | 用等价的更廉价表达式替换 |
| Short-Circuiting | 提前终止求值 |
| Reordering Tests | 廉价/常成功的测试放前面 |
| Precompute Logical Functions | 查表替代逻辑计算 |
| 规则 | 说明 |
|---|---|
| Inlining | 内联展开减少调用开销 |
| Exploit Common Cases | 快速路径处理常见情况 |
| Tail Recursion Removal | 尾递归转循环 |
| Parallelism | 利用硬件并行能力 |
详见 reference/procedure-rules.md
| 规则 | 说明 |
|---|---|
| Compile-Time Initialization | 编译期初始化 |
| Strength Reduction | 用廉价操作替代昂贵操作 |
| Common Subexpression Elimination | 消除公共子表达式 |
| Word Parallelism | 利用字宽并行(位操作) |
详见 reference/expression-rules.md
| 规则 | 说明 |
|---|---|
| AoS → SoA | 单字段扫描时结构体数组转数组结构体 |
| Loop Tiling | 分块处理,使工作集 fit 进 cache |
| False Sharing | 多线程变量对齐到不同 cache line |
| Arena/Pool | 批量分配,避免频繁 malloc |
详见 reference/cache-and-memory.md
| 规则 | 说明 |
|---|---|
| string_view/span | 避免拷贝,零开销抽象 |
| Branchless | 减少分支预测失败惩罚 |
| CRTP | 静态多态替代虚函数 |
| Sharded Lock | 分片锁减少竞争 |
详见 reference/modern-cpp-tricks.md
设计层面:
实现层面:
代码文件修改的统一入口。当用户请求任何代码变更(新功能、优化、Bug 修复、重构)时必须首先调用此 skill。仅适用于代码文件(如 .cc/.cpp/.h/.go/.py 等),修改 .md 等非代码文件时不需要调用。它会评估复杂度、检查 spec.md、生成 tasks.md、并逐个任务执行。
测试生成。基于 spec.md 或被测代码,生成单元测试、集成测试、性能测试。当用户请求生成测试、TDD 模式、或 workflow-code-generation 完成后触发。
将纠错经验沉淀为持久化的 Rules/Skills 更新,构建反馈闭环。当被用户纠正且错误具有模式性时自动触发,或通过 /reflect 命令手动触发回顾。
问题排查。当用户遇到编译错误、运行时异常、单测失败、流水线报错、现网告警等需要定位问题时触发。
代码评审。协调 5 个专项 reviewer subagent 对代码进行并行多维度审查。可由用户直接触发,也可由主 agent 加载后作为 Judge 执行。
需求澄清。只负责明确"要解决什么问题",生成 spec.md 的前三章节(背景、目标、需求)。禁止在本阶段讨论设计方案——设计是 workflow-system-design skill 的职责。