用途:在代码审查中查找、判定并修复算法复杂度问题,语言无关,重点覆盖生产代码中常见的意外二次方、指数级与 N+1 性能爆炸。适用于审查 PR 或函数是否存在性能回退、回答“为什么慢/能否更快”、重构热路径或处理用户规模输入的函数,以及阅读含嵌套循环、循环内 .includes/.find/x in list、循环内 ORM 访问、无记忆化递归、用 += 或展开构建字符串/数组、循环内文件或数据库 I/O 的代码。
主要能力:按 8 类 39 条规则组织,含嵌套迭代(nested-)、循环不变量 I/O 与 N+1(io-)、数据结构不匹配(ds-)、递归复杂度(rec-)、冗余计算(compute-)、集合构建(build-)、搜索与排序选择(search-)、空间复杂度陷阱(space-)。每条规则给出:问题原因、带代价标注的错误示例、最小改动的正确示例、不适用该修复的例外。
使用方式:按“发现—归类—修复”三步。先扫描结构信号,如两层 for 循环对应 nested-explicit-quadratic-loops;循环内 .includes/.find 对应 nested-includes-in-loop;循环内 ORM 访问对应 io-n-plus-one-query;for-of 中 await fetch 对应 io-sequential-await-in-loop;循环内 sorted(...) 对应 search-sort-once-outside-loop。再由代码结构推导 Big-O,例如单层循环为 O(n),两层嵌套为 O(nm),循环内调用 .includes 常被误读为 O(n) 实为 O(nm),无记忆化的 f(n)=f(n-1)+f(n-2) 为 O(2ⁿ),循环内字符串 s = s + part 为 O(n²),reduce 中 [...acc, x] 为 O(n²)。最后套用匹配规则的最小改动修复。判定准则:输入翻倍时,运行时间约翻倍为线性、约四倍为二次方、更糟为指数级。
限制:资料未提供官方安装命令、收费方式、支持平台与具体效果数据。详细内容见 references/ 下的规则文件、references/_sections.md 分类排序说明及 assets/templates/_template.md 规则模板;可与 bug-review、语言特定最佳实践技能配合使用。