用途:面向 Rails 开发者的性能审查技能,在功能实现后或代码评审阶段系统检查性能问题,目标是发现 N+1 查询、缺失索引、内存问题与扩展性瓶颈。
主要能力:按框架逐项检查数据库(N+1、缺失索引、低效查询、计数器缓存)、算法复杂度(O(n^2) 或更差且无正当理由)、内存(大集合批处理、内存高效加载)、缓存(记忆化机会、Rails.cache 用于昂贵计算)、后台任务(应异步的长任务)、锁(事务范围、锁时长、事务内外部调用)以及防御性措施(strict_loading、查询超时)。
性能基准:无正当理由不得使用差于 O(n log n) 的算法;所有被查询列必须有索引;API 响应低于 200ms;集合按批处理(最多 1000 项)。
验证命令:
检查 schema 中缺失的索引
grep -E "(belongs_to|has_many)" app/models/*.rb | grep -v "optional:"
查找潜在 N+1 查询
grep -rn ".each.." app/ --include=".rb" | grep -v find_each
检查慢查询日志(若启用)
tail -100 log/development.log | grep "Load"
输出格式:包含性能摘要、关键问题表(问题、影响、解决方案)、扩展性评估(10 倍与 100 倍数据下的预测)以及按优先级排列的建议操作。
限制:资料未提供安装方式、收费信息、支持平台或具体使用步骤;反模式与修复细节需参考 references/patterns.yaml。