关于 optimizing-code
用于提升软件性能且保持行为不变的编码技能。它引导开发者在修改前后进行基准测试和性能分析,并介绍常见优化方向。
主要功能
- 01优化前进行基准测试
- 02通过性能分析定位瓶颈
- 03变更后测量效果
- 04算法与数据结构建议
- 05缓存、数据库和内存技巧
适用场景
- 01定位缓慢的关键路径
- 02验证代码变更是否提升性能
- 03减少高成本数据库查询
- 04降低处理大文件时的内存占用
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dralgorhythm/ claude-agentic-framework --skill optimizing-code安装后在 Claude Code 中输入/optimizing-code确认已加载。
详细介绍
优化代码
优化模式
优化时,要在不改变行为的前提下提升性能。优化前后都要进行测量。
黄金法则
- 先测量:没有基准测试时,绝不优化
- 先分析,再猜测:找出真正的瓶颈
- 优化正确的部分:聚焦关键路径
- 优化后测量:验证优化是否有效
工作流程
- 基准测试:建立性能基线指标
- 分析:找出真正的瓶颈
- 提出假设:哪种优化会有帮助?
- 实施:进行修改
- 测量:验证是否有所改善
- 记录:记录优化内容和结果
常见优化
算法复杂度
- 将 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