Files

2.9 KiB

name, description
name description
optimize-target-code 分析并优化用户指定的函数、类、文件或小范围功能,改善实现效率、复杂度、数值稳定性、健壮性或可读性,并进行必要验证。仅在用户显式调用 $optimize-target-code 时使用。

优化指定代码

对用户指定的小范围代码进行针对性优化,避免扩大修改范围。

执行流程

  1. 读取适用的 AGENTS.md,确认目标文件、函数或功能。
  2. 读取目标代码、直接调用方、相关数据结构和测试,不扫描整个项目。
  3. 明确当前接口、输入输出、副作用、边界条件和预期行为。
  4. 检查:
    • 不必要的循环、遍历、排序和重复计算;
    • 不合适的数据结构和算法复杂度;
    • 多余的对象创建、内存分配和数据复制;
    • 浮点精度、除零、溢出、NaN 和边界输入;
    • 过深嵌套、复杂条件和难以理解的代码结构;
    • 热路径中的日志、IO、阻塞和共享状态。
  5. 选择收益明确、风险最低、修改最小的方案。
  6. 如果用户只要求“分析”或“检查”,给出建议但不修改代码。
  7. 如果用户要求“优化”或“改进”,直接实施行为保持型优化。
  8. 修改后运行最相关的测试或构建,并检查 diff。

修改原则

默认保持以下内容不变:

  • 公共接口和函数签名;
  • 输入输出含义;
  • 返回值和异常行为;
  • 状态修改和副作用;
  • 结果顺序和确定性;
  • 线程和异步语义;
  • 单位、坐标系、阈值和数值容差;
  • 配置和序列化兼容性。

如果优化需要更换算法,并且可能改变结果、精度或适用范围,先说明新旧方案和风险,获得用户确认后再修改。

不要:

  • 顺便重构其他模块;
  • 格式化整个文件或项目;
  • 修改无关代码;
  • 为了减少代码行数而过度抽象;
  • 在没有测量时声称性能已经提升;
  • 为通过测试而降低断言标准;
  • 覆盖或回退用户原有改动。

性能验证

只有用户关注性能,或者修改明显针对性能时才进行基准测量。

优化前后使用相同输入、环境和构建模式,并重复运行。无法可靠测量时,只说明理论复杂度和预期收益,不声称实际性能提升。

特殊情况

对于数学、机器人、控制和实时代码,重点检查浮点误差、单位、坐标系、采样周期、角度归一化、饱和处理和实时周期,不擅自修改公式或参数。

硬件控制、部署和实机测试需要用户明确授权。

完成报告

简要报告:

  • 优化了哪个文件或函数;
  • 发现了什么问题;
  • 做了什么修改;
  • 复杂度或预期收益;
  • 执行了哪些测试或构建;
  • 哪些内容尚未验证。

如果没有值得实施的安全优化,明确说明,不要强行修改代码。