mcpField
O
optimization

optimization

github.com/1jehuang开发21.3k74 次安装今天更新
代码仓库

关于 optimization

Optimization 是用于提升系统效率的开发技能,通过测量和瓶颈分析指导优化。它引导开发者先设定指标并建立基线,再实施高影响改动并重新测量。

主要功能

  1. 01定义可测量的目标指标
  2. 02建立可重复的基线
  3. 03归因资源开销
  4. 04检查算法与架构
  5. 05优先处理宏观优化
  6. 06重新测量并检查回归

适用场景

  1. 01排查高延迟或内存用量
  2. 02定位工作负载中的瓶颈
  3. 03对照基线验证性能改动

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/1jehuang/jcode --skill optimization

安装后在 Claude Code 中输入/optimization确认已加载。

详细介绍

优化

当任务涉及让系统运行更快、更轻量、更具扩展性或以其他方式提高效率时,使用此技能。

核心原则

要正确优化,你必须了解:

  1. 你追求哪些指标
  2. 真正的瓶颈在哪里

不要盲目优化。

1. 首先定义目标指标

修改代码前,确保测量方法正确。

  • 确定真正重要的具体指标:延迟、吞吐量、内存、CPU、启动时间、编译时间、查询次数、令牌用量、成本等。
  • 全面测量,而不只是测量方便获取的一部分。
  • 确保指标准确,且能代表实际工作负载。
  • 优先选择运行速度快的测量方式,以便快速迭代。
  • 如果可能,创建可重复的基准测试或脚本,确保改进可验证。

2. 全面定位瓶颈

你应该能清楚地追踪系统各部分的运行情况。

  • 为系统添加监测,了解时间和资源花在了哪里。
  • 尽量同时采用:
    • 临时检查,用于快速调试
    • 记录测量数据,用于后续分析和比较
  • 追踪完整执行路径上的工作,而不只是显而易见的慢速组件。
  • 确保数据足够详细,能够解释成本的来源。

如果能在事后通过日志或跟踪分析运行情况,通常会比只依赖实时检查强大得多。

3. 同时进行静态分析

并非所有优化问题都需要先进行运行时性能分析。通常,检查代码就能发现问题。

检查以下方面:

  • 渐近复杂度不合理
  • 算法或数据结构选择不当
  • 不必要的重复工作
  • 在错误的层级执行工作
  • 架构或控制流效率低下
  • 方向性错误的方法

在调整细节前,先确保渐近复杂度合理,整体算法可行。

4. 先进行宏观优化,再进行微观优化

优先处理收益最大的改进。

  • 与其让现有工作稍微便宜一些,不如先移除整类工作。
  • 优先修复架构、批处理、缓存、查询模式、算法选择、并行处理和数据传输,再考虑微小的底层调整。
  • 如果与预期指标相差甚远,就应花更多时间进行宏观优化。

只有在解决主要低效问题后,微观优化才最有价值。

推荐工作流

  1. 定义成功指标。
  2. 重现当前基线。
  3. 如果缺少测量和归因机制,则添加这些机制。
  4. 找出最主要的瓶颈。
  5. 检查算法或架构问题。
  6. 优先应用收益最大的修复。
  7. 重新测量。
  8. 重复以上步骤,直到达到目标,或权衡后发现继续优化不再值得。

注意事项

  • 没有前后对比证据,不要声称优化有效。
  • 谨慎选择指标,避免优化错了方向。
  • 留意正确性、可靠性、可维护性和安全性方面的回归问题。
  • 优先选择可测量、可解释且可逆的改动。

评论

支持 Markdown