摘要
状态估计(SE,根据可见数值推测对手隐藏构筑的模块)在一次性能剖析中发现:274 次公开属性投影里,“施法配置”被重复构造了 241,120 次。实验 0330 先评估了复用是否安全,本实验按该评估实现:在一次公开查询内部,按“校验后的资源组合”缓存不可变的施法配置;每次访问之前,英雄与资源校验照常执行。结果与修改前完全等价,但没有测量任何提速。
要回答的问题
能否在不改变任何输出、错误顺序和公开接口的前提下,减少同一查询内的重复构造?
方法
- 缓存只存在于一次查询的私有上下文中,键是校验后的槽位倍率元组;不同查询从空字典开始,查询结束随之释放。
- 无效的英雄或资源值仍在查找前失败(包括 Python 中
True == 1这类布尔/整数碰撞),构造失败不写入缓存。 - 原有内部方法保持签名且不缓存;公开接口、版本标签、精确分数、错误类型都不变。没有引入全局缓存、引擎缓存或消费者缓存,也没有改 AI 搜索或游戏规则。
设置
比较器把修改前的两个原始源文件以隔离别名与新代码同时加载,逐字段比较全部数据类字段、容器顺序、标量类型、精确分数和浮点表示,没有“忽略字段”清单。
结果
| 检查 | 结果 |
|---|---|
| 四组完整公开投影 | 三种属性选项 × 每种 220 种成长结果,前后完全相等 |
| 四组面具(不可用于竞技场的宝物)拒绝 | 相同错误类型与信息 |
| 状态估计整份响应 | 每个字段和有序前向轨迹都相等 |
| 新增 49 项复用与守卫回归 | 全部通过;原 239 项专项也全部通过 |
| 操作计数 | 四个合法夹具各只构造一次配置,校验次数不变 |
| 独立只读审阅 | 有条件通过(保留历史尝试的说明) |
Simulator 全量共 11,246 个用例:合并后 10,919 通过、68 失败、257 准备错误、2 跳过。68 个失败与 Core378 基线相同;257 个准备错误都是当前安装版本 build25672315 被旧身份门禁拒绝,发生在任何投影之前,保留为错误而不是跳过。SE/API 边界 73 项通过。
失败与负结果
- 等价验证的第 1、2、3 次尝试分别因零权重宝物、非竞技场装备、第三次技能选择越界而失败,全部保留;第 3 次已得到的 3 组相等结果被复用,另补 5 组新的。
- 第一次专项测试中一个新夹具在构造畸形英雄时出错(漏了已解析的法术授予),修正后 49 项全过。
- SE 比较器第一次因 Windows 文件名长度限制失败,改用更短的可读路径。
- 全量中有 2 个失败来自本次运行的过长临时路径,换短路径单独重跑后通过。
局限
这是“行为不变”的软件证据,不证明商业规则真实、推断准确、App 集成或实时 p95,更没有测量提速。整份潜力值的记忆化未获批准,因为缺少完整的类型化键与参数证据。
结论与下一步
复用已实现且验证等价。任何延迟比较需要另立有资源与时钟协议的测量窗口;已关闭的单英雄剖析分支不重复。
Comments