SuperAPI AI 工具集

complexity-optimizer

编程与开发

查看项目

更新于 10-16 06:22

技能介绍

用途:对软件代码库进行算法复杂度与性能热点分析,找出可能的高开销模式,并提出或实施不破坏现有行为的安全优化。核心规则是:只有在理解当前行为且能保留该行为时才优化,优先选择小而经过验证、带测试的改进,而非正确性不明的广泛重写。

主要能力:默认在用户要求分析、扫描、审计、审查或让出一份报告时,自动产出完整复杂度报告,无需用户指定报告字段。报告内容包括:分析范围与检测到的技术栈/测试命令、按可能影响排序的主要发现、每个发现的文件与行号、当前模式及为何可能昂贵、估计的当前复杂度、建议改动、改动后的估计复杂度、风险等级、所需测试或基准以及明确声明未修改任何文件。仅在用户明确要求实现、修复、优化、应用、变更或重构时才编辑文件。

使用方式:先建立基线,识别语言、框架、测试命令、构建命令与性能敏感路径,检查现有测试;扫描仓库时可运行:python3 scripts/analyze_complexity.py /path/to/repo --format markdown 或 --format json。扫描器覆盖 Python、JavaScript、TypeScript、JSX/TSX、Java、Go、C、C++、C#、Ruby、PHP 和 Swift 文件中的常见模式,其输出是线索而非定论。接着对机会排序,优先处理热路径、大输入路径、渲染循环、数据库/API 循环和共享工具,并区分算法复杂度与常数因子清理。优化时遵循保守原则,例如用映射/集合替换重复线性查找、用索引或分组替换嵌套扫描、在 UI 中减少不必要渲染、在数据访问中消除 N+1 行为。最后运行相关测试与类型、lint、构建命令,必要时添加微基准或测量,并报告原始复杂度、新复杂度、改动文件、运行的测试及残余风险。

适用场景:适用于需要评估性能瓶颈、审查复杂度问题或在保证行为不变前提下做受控优化的代码库。

限制:仅在数据规模足够大、复杂度确有影响时才值得优化;必须确认输出顺序、对象标识、可变性、缓存失效、去重语义以及数据库批处理的租户、权限、软删除、分页和排序约束;缓存需有有效失效策略。若测试缺失且行为不明确,应先做最小重构或询问预期行为,再改变语义。扫描器未报告时仍需手动检查已知热路径。