2.9 KiB
2.9 KiB
name, description
| name | description |
|---|---|
| optimize-target-code | 分析并优化用户指定的函数、类、文件或小范围功能,改善实现效率、复杂度、数值稳定性、健壮性或可读性,并进行必要验证。仅在用户显式调用 $optimize-target-code 时使用。 |
优化指定代码
对用户指定的小范围代码进行针对性优化,避免扩大修改范围。
执行流程
- 读取适用的
AGENTS.md,确认目标文件、函数或功能。 - 读取目标代码、直接调用方、相关数据结构和测试,不扫描整个项目。
- 明确当前接口、输入输出、副作用、边界条件和预期行为。
- 检查:
- 不必要的循环、遍历、排序和重复计算;
- 不合适的数据结构和算法复杂度;
- 多余的对象创建、内存分配和数据复制;
- 浮点精度、除零、溢出、NaN 和边界输入;
- 过深嵌套、复杂条件和难以理解的代码结构;
- 热路径中的日志、IO、阻塞和共享状态。
- 选择收益明确、风险最低、修改最小的方案。
- 如果用户只要求“分析”或“检查”,给出建议但不修改代码。
- 如果用户要求“优化”或“改进”,直接实施行为保持型优化。
- 修改后运行最相关的测试或构建,并检查 diff。
修改原则
默认保持以下内容不变:
- 公共接口和函数签名;
- 输入输出含义;
- 返回值和异常行为;
- 状态修改和副作用;
- 结果顺序和确定性;
- 线程和异步语义;
- 单位、坐标系、阈值和数值容差;
- 配置和序列化兼容性。
如果优化需要更换算法,并且可能改变结果、精度或适用范围,先说明新旧方案和风险,获得用户确认后再修改。
不要:
- 顺便重构其他模块;
- 格式化整个文件或项目;
- 修改无关代码;
- 为了减少代码行数而过度抽象;
- 在没有测量时声称性能已经提升;
- 为通过测试而降低断言标准;
- 覆盖或回退用户原有改动。
性能验证
只有用户关注性能,或者修改明显针对性能时才进行基准测量。
优化前后使用相同输入、环境和构建模式,并重复运行。无法可靠测量时,只说明理论复杂度和预期收益,不声称实际性能提升。
特殊情况
对于数学、机器人、控制和实时代码,重点检查浮点误差、单位、坐标系、采样周期、角度归一化、饱和处理和实时周期,不擅自修改公式或参数。
硬件控制、部署和实机测试需要用户明确授权。
完成报告
简要报告:
- 优化了哪个文件或函数;
- 发现了什么问题;
- 做了什么修改;
- 复杂度或预期收益;
- 执行了哪些测试或构建;
- 哪些内容尚未验证。
如果没有值得实施的安全优化,明确说明,不要强行修改代码。