From 6eb977a0d0d65fc800538209df6760bb7647ac27 Mon Sep 17 00:00:00 2001 From: claude_dev Date: Wed, 26 Aug 2026 05:03:45 +0800 Subject: [PATCH] =?UTF-8?q?fix(factor):=20load=E6=AE=B5=E5=86=85=E5=AD=98?= =?UTF-8?q?=E5=B3=B0=E5=80=BC=E6=A0=B9=E6=B2=BB=E2=80=94=E2=80=94chunks?= =?UTF-8?q?=E5=9C=A8concat=E5=90=8E=E5=8D=B3=E6=B8=85+transform=E9=93=BEla?= =?UTF-8?q?zy=E5=8D=95=E6=AC=A1=E7=89=A9=E5=8C=96,RSS=E7=9B=91=E6=8E=A7?= =?UTF-8?q?=E5=AE=9E=E9=94=A46.6GB=E8=A2=ABkernel=E5=91=A8=E6=9C=9F?= =?UTF-8?q?=E6=80=A7OOM=E5=87=BB=E6=9D=80,eager=E9=80=90=E6=AD=A5=E9=93=BE?= =?UTF-8?q?3-4=E5=80=8D=E5=B3=B0=E5=80=BC=E6=94=B6=E6=95=9B=E5=88=B0~1.5?= =?UTF-8?q?=E5=80=8D=20[vps]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sanguo_factor/universe.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sanguo_factor/universe.py b/sanguo_factor/universe.py index aa7714e..2310d61 100644 --- a/sanguo_factor/universe.py +++ b/sanguo_factor/universe.py @@ -84,8 +84,11 @@ def load_universe_bars( return _empty_alpha_df() df = pl.concat(chunks) + chunks.clear() # 立即释放逐symbol块(~1G),勿持有到函数尾 + # transform 链 lazy 单次物化:eager 逐步链每步全量拷贝,峰值3-4倍;lazy 融合后~1.5倍 df = ( - df.with_columns( + df.lazy() + .with_columns( pl.col("dt").str.slice(0, 10).str.to_datetime("%Y-%m-%d").alias("datetime"), (pl.col("symbol") + "." + pl.col("exchange")).alias("vt_symbol"), pl.when(pl.col("volume") > 0) @@ -97,6 +100,7 @@ def load_universe_bars( .with_columns(pl.int_range(pl.len()).over("vt_symbol").alias("bar_idx")) .select(["vt_symbol", "datetime", "open", "high", "low", "close", "volume", "turnover", "open_interest", "vwap", "bar_idx"]) + .collect() ) return df