From 0745e73b4ffe1c721cf4b98cdc0b4d3806898580 Mon Sep 17 00:00:00 2001 From: jack Date: Fri, 28 Aug 2026 15:24:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A4=E5=AE=9A=E8=A6=81=E7=9F=A5=E9=81=93?= =?UTF-8?q?=E5=A2=9E=E9=87=8F=E5=BC=80=E6=B2=A1=E5=BC=80=EF=BC=8C=E5=90=A6?= =?UTF-8?q?=E5=88=99=E4=BC=9A=E6=8E=A8=E8=8D=90=E5=B7=B2=E7=BB=8F=E5=9C=A8?= =?UTF-8?q?=E5=81=9A=E7=9A=84=E4=BA=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 上线 9 小时后实测踩到:清空 326ms 触发「币数 > 核数」那一支,于是继续输出 「唯一出路是走增量」——而增量已经生效。同一个分支在增量前后给同一个答案, 等于没有判定。 现在分开:增量未开就指向开增量;已开则指出单币 102ms 里 chan 构建只剩约 22ms,其余是 build_htf_zones / find_fast_bsp3 / attach_htf_context,要继续 压得改这三个或减币。顺带把「宽裕」阈值从 300 提到 400ms——清空 326ms 在 数据到达中位 347~558ms 面前不是瓶颈。 Co-authored-by: Cursor --- research/live/shadow_hb.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/research/live/shadow_hb.py b/research/live/shadow_hb.py index 6d9c265..d344b91 100644 --- a/research/live/shadow_hb.py +++ b/research/live/shadow_hb.py @@ -76,6 +76,8 @@ from lib.shadow_budget import LAG_ALARM_MS, LAG_WINDOW, lag_healthy SITE = os.environ.get("SHADOW_SITE") or socket.gethostname() # 判「加 worker 有没有用」必须知道核数:CPU 密集的活,worker 超过核数不增吞吐 CORES = os.cpu_count() or 1 +# 判定要知道增量开没开,否则增量已生效时还会继续推荐「走增量」 +INCR_ON = os.environ.get("SHADOW_INCR", "1") not in ("0", "", "false") # 少于这么多根就不送去算。缠论要先有分型再有笔再有中枢,几十根出不来中枢, # 送过去只会白占一个计算槽 MIN_BARS = 200 @@ -838,17 +840,22 @@ class Shadow: """ if not np.isfinite(clear): return "样本不足,暂不判定" - if clear < 300: + if clear < 400: return f"清空 {clear:.0f}ms,宽裕,无需优化" if self.workers < CORES and q > i: return (f"排队为主且还有 {CORES - self.workers} 个空闲核 → " f"--workers 加到 {CORES}") - if len(SYMS) > CORES: - per = clear / max(len(SYMS) / max(self.workers, 1), 1) + if len(SYMS) <= CORES: + return f"清空 {clear:.0f}ms 偏高,但币数未超核数,先查别的争抢" + # 币数超核数:加 worker 不增吞吐,只能压单币耗时。但要看增量开没开, + # 否则会在增量已生效时继续推荐「走增量」——上线后实测踩到过 + if not INCR_ON: return (f"币数 {len(SYMS)} > 核数 {CORES},加 worker 无用(CPU 密集)" - f"。唯一出路是压单币耗时 {per:.0f}ms → 走增量 " - f"init_stream/append_bar(HANDOFF §5.5,实测约 3.7x)") - return f"清空 {clear:.0f}ms 偏高,但币数未超核数,先查是否有别的争抢" + f"。压单币耗时 → 开 SHADOW_INCR=1 走增量(实测 3.56x)") + return (f"币数 {len(SYMS)} > 核数 {CORES},且增量已生效。单币 {i:.0f}ms " + f"里 chan 构建仅约 22ms,其余是 build_htf_zones / " + f"find_fast_bsp3 / attach_htf_context —— 要继续压得改这三个," + f"或减币") async def run(self) -> None: await self.start()