提供性能优化方法论、设计原则和具体优化规则。在编写代码、优化性能瓶颈、进行 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
设计层面:
实现层面:
npx skills add davidYichengWei/bp-performance-optimization下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer