Files
sanguo_vnpy_v2/sanguo_factor
claude_dev 67fae2fef2 perf(factor): 财务特征join_asof分块化——NAS全量1480万行grid OOM根治 [nas]
根因: 全市场grid(5555股×2670日×33列≈4G)单次join_asof + batch_eval侧
特征帧+alpha_df双全量副本,峰值10G+,7.9G NAS必爆(合成3股测不出)。

- adapter重构: iter_fundamental_feature_chunks生成器——grid按股分批构建
  (BATCH_CODES=500,批间无全量grid副本),事件右表(报告期+forecast)全批共用一份;
  build_fundamental_features改为chunks concat(单一代码路径)
- batch_eval: 特征join移到del bars之后(省1G bars常驻),逐块filter→join
  alpha_df分片→concat,不再持有特征帧全量副本;断点续跑已完成的财务因子不再触发join
- 消两处join_asof UserWarning: 显式按键sort后抑制polars 1.42 by分组无法
  校验sortedness的无信息提示(sort即正确性保险;set_sorted实测压不住)
- 等值测试: 6股合成域 batch=1/2/6 逐值等值(分块不改变结果)
- NAS真数据探针(600真股×2018-2026×batch500): roe_ttm覆盖0.904,
  峰值RSS 1017MB(含全量statement加载),零OOM;生产规模外推~2G内

[nas]

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-08 09:31:52 +08:00
..