Justin Gu
a69fa4103a
fix: 寻优指标缓存键改内容哈希 — 修复 v1.25 起两段式加速静默失效
缓存键此前用数组对象 id 做签名,而引擎每次 run 会重建数组对象,
id 逐网格点漂移导致跨点永不命中——ParamGridOptimizer 的指标缓存
全程 0 命中,两段式加速自 v1.25 引入起就没生效过。正确性不受影响
(缓存未命中即走重算路径,结果与无缓存逐位一致),属纯性能回归;
test_optimizer_cache_reuse_across_grid_points 因此一直在失败。
- IndicatorCache._atom 数组签名由 (id, shape) 改为
(dtype, shape, blake2b 内容摘要 16 字节):同值不同对象视为同一
数据;NaN 按字节参与哈希,位模式不同只多算一次、不会误命中
- 删除防 id 复用的 _array_refs 强引用表(内容寻址下不再需要,
缓存不再延长数组生命周期)
- 新增缓存级回归测试:同内容不同对象必须命中;原失败测试转绿
- 实测 16 点网格命中率 38%(修复前恒为 0);全量 pytest 1613
通过、ruff/mypy 全绿
2026-09-04 12:29:09 +08:00
..
2026-09-03 03:27:04 +08:00
2026-09-01 22:17:57 +08:00
2026-06-12 21:10:50 +08:00
2026-09-03 23:54:29 +08:00
2026-09-04 12:17:36 +08:00
2026-07-02 03:37:37 +08:00
2026-06-09 18:21:25 +08:00
2026-09-02 13:16:41 +08:00
2026-07-02 03:37:37 +08:00
2026-09-01 22:16:44 +08:00
2026-09-03 23:22:48 +08:00
2026-09-01 22:36:37 +08:00
2026-09-01 22:17:08 +08:00
2026-09-04 12:29:09 +08:00
2026-07-04 21:07:39 +08:00
2026-09-04 12:17:36 +08:00
2026-09-01 23:47:06 +08:00
2026-09-03 23:22:48 +08:00
2026-09-03 23:22:48 +08:00
2026-07-10 15:12:47 +08:00
2026-09-01 22:36:37 +08:00
2026-09-01 22:17:08 +08:00
2026-06-12 20:47:03 +08:00
2026-09-02 13:16:41 +08:00
2026-09-02 15:49:41 +08:00
2026-09-01 22:17:08 +08:00
2026-09-03 23:54:29 +08:00