用途:complexity-cuts 面向已有代码的性能优化,在代码可运行但时间或空间复杂度过高时使用,如嵌套循环、O(n²) 扫描、重复计算、冗余分配、ORM 的 N+1 查询、在 for 中 await 独立项导致串行等待等。新代码的复杂度预防应改用 lemmaly,数学级优化(Bloom、HLL、FFT、JL 投影)升级到 mathguard。
主要能力:给出时间/空间复杂度的降阶变换清单,如把循环内列表查找改成 Set/Map、哈希连接、循环外预计算索引、记忆化、循环外排序、堆取 Top-K、前缀和、排序加扫描线、Promise.all 批处理、IN(...) 批量查询;空间方面包括生成器/流式、滚动窗口、位集、原地修改、分块读取、有界缓存、游标分页等。当渐近下界无法再降时,转入常数因子优化并明确标注。
使用方式:先写明 Current/Target 的 time 与 space 复杂度及主导输入维度,定位瓶颈行,从清单中选一项变换,应用后跑测试;测试失败立即回退,不修改测试;连续 3 次回退则停止并升级到 invariant-guard。落地后运行代表性基准,报告前→后与倍数。输出须按顺序包含瓶颈、当前复杂度、变换、新复杂度、语义风险、实测加速与 diff。
适用场景:重构既有热点代码、排查超时或内存问题、优化 ORM 查询与批处理逻辑。限制:必须有既有测试或先写特征化测试;仅覆盖单进程范围,分布式瓶颈除外;不自动运行基准,需作者提供代表性输入;对 I/O 受限代码无帮助;输入小且有界时不应优化。