定位 inner_ms 的 3.3 倍:是争抢不是算法档,撤回 22/86 拆分

服务端跑 probe_inner.py 与本机对表:分档占比一致(TF_DF 两腿 68~74%,
信号链 16~21ms),此前报的「chan 构建 22ms / 信号链 86ms」是无效减法
——孤立环境的 1m append 减在场十币的 inner_ms,还漏了 5m 腿。

真实构成:inner_ms 100ms = 约 30ms 计算 × 3.3 倍争抢。逐个排除
_rebuild(1.6ms)、币种差异、周期重建(21.5%/1.5x)、批内次序(相关-0.083)
后,用外生的到达密集度确认(67→117ms),并以注入合成负载复现
(2 个满载进程 2.68x,3 个 2.86x,在场实测 2.24~3.34x)。

心跳判定不再推荐「继续压算法」,改为加核或减币。

第一版用 t_signal-inner_ms 反推并发区间得相关 0.533,是循环构造,
已废弃并在 §5.72 记下这个坑。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jack
2026-08-28 16:19:25 +08:00
co-authored by Cursor
parent be442783a1
commit cef894376c
2 changed files with 81 additions and 8 deletions
+10 -5
View File
@@ -856,7 +856,9 @@ class Shadow:
144ms 抬到 192ms,反而超过 queue 135ms,于是判定落到「量级已低、
无需优化」,而此时最后一个币已经落在 1376ms。
所以币数超过核数时,唯一的出路是压单币耗时(增量计算),不是加 worker。
所以币数超过核数时,加 worker 不增吞吐。出路有两级:先上增量把真实计算
压下来;增量之后剩的是争抢放大(实测 3.3 倍,§5.72),那一级只能加核或
减币,继续改算法收益有限。
"""
if not np.isfinite(clear):
return "样本不足,暂不判定"
@@ -872,10 +874,13 @@ class Shadow:
if not INCR_ON:
return (f"币数 {len(SYMS)} > 核数 {CORES},加 worker 无用(CPU 密集)"
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"或减币")
# 增量已生效时,单币耗时的大头不再是算法而是争抢:离线同一窗口 30ms,
# 在场 100ms,注入合成负载能复现这个倍数(HANDOFF §5.72)。所以这里不能
# 再推荐「继续改算法」——那是按 3.3 倍虚高的数去优化 30ms 的真实计算
return (f"币数 {len(SYMS)} > 核数 {CORES},增量已生效,加 worker 无用"
f"worker 已等于核数)。单币 {i:.0f}ms 里真实计算约 30ms"
f"其余是 {CORES} 核上争抢的放大 —— 杠杆是加核或减币,"
f"不是继续压算法")
async def run(self) -> None:
await self.start()