mcpField
O
optimizing-code

optimizing-code

github.com/dralgorhythm开发12870 次安装14 周前更新
代码仓库

关于 optimizing-code

用于提升软件性能且保持行为不变的编码技能。它引导开发者在修改前后进行基准测试和性能分析,并介绍常见优化方向。

主要功能

  1. 01优化前进行基准测试
  2. 02通过性能分析定位瓶颈
  3. 03变更后测量效果
  4. 04算法与数据结构建议
  5. 05缓存、数据库和内存技巧

适用场景

  1. 01定位缓慢的关键路径
  2. 02验证代码变更是否提升性能
  3. 03减少高成本数据库查询
  4. 04降低处理大文件时的内存占用

安装

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

$npx skills add https://github.com/dralgorhythm/claude-agentic-framework --skill optimizing-code

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

详细介绍

优化代码

优化模式

优化时,要在不改变行为的前提下提升性能。优化前后都要进行测量。

黄金法则

  1. 先测量:没有基准测试时,绝不优化
  2. 先分析,再猜测:找出真正的瓶颈
  3. 优化正确的部分:聚焦关键路径
  4. 优化后测量:验证优化是否有效

工作流程

  • 基准测试:建立性能基线指标
  • 分析:找出真正的瓶颈
  • 提出假设:哪种优化会有帮助?
  • 实施:进行修改
  • 测量:验证是否有所改善
  • 记录:记录优化内容和结果

常见优化

算法复杂度
  • 将 O(n²) 替换为 O(n log n) 或 O(n)
  • 使用合适的数据结构(查找时用 Set,键值对用 Map)
缓存
// Memoization
const cache = new Map<string, Result>();

function expensiveCalculation(input: string): Result {
  if (cache.has(input)) {
    return cache.get(input)!;
  }
  const result = /* expensive work */;
  cache.set(input, result);
  return result;
}
数据库查询
  • 为频繁查询的列添加索引
  • 避免 N+1 查询(使用预加载)
  • 对大型结果集进行分页
内存
  • 避免在循环中创建不必要的对象
  • 对大型文件使用流式处理
  • 使用完毕后释放引用

性能分析工具

# Node.js
node --prof app.js
node --prof-process isolate-*.log

# Python
python -m cProfile -s cumtime script.py

# Go
go test -bench=. -cpuprofile=cpu.prof
go tool pprof cpu.prof

应避免的反模式

  • 过早优化(没有基准测试)
  • 微优化(影响微乎其微)
  • 优化非关键路径
  • 为微小收益牺牲可读性

评论

支持 Markdown