更正上一提交:争抢是 1.5x 不是 3.3x,并发现按币绑 worker 可省三分之一
上一提交的 3.3x 基线是废的:离线每次喂同一窗口,append_bar 一根没追 (实测 6 次调用 stream 2001→2001 零增长),测的只是信号链地板 30ms, 拿它比在场 inner_ms 又是一次口径不对齐——和刚撤回的 22/86 同一类错。 对齐后:在场每次平均追 2.81 根(2 worker 各存一份缓存、各自漏掉对方 处理过的根),离线同口径 67.3ms,在场 100ms → 争抢 1.49x。 顺带修正「重建占 21.5%」:真重建只有 0.31%,此前把换 worker 的小幅 回退误判成重建。 新杠杆:symbol 固定到同一 worker,每次只追 1 根,离线 67.3 → 45.0ms, 在场约省 33ms/币(inner_ms 三分之一)。心跳判定改指这一刀。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -874,13 +874,13 @@ class Shadow:
|
||||
if not INCR_ON:
|
||||
return (f"币数 {len(SYMS)} > 核数 {CORES},加 worker 无用(CPU 密集)"
|
||||
f"。压单币耗时 → 开 SHADOW_INCR=1 走增量(实测 3.56x)")
|
||||
# 增量已生效时,单币耗时的大头不再是算法而是争抢:离线同一窗口 30ms,
|
||||
# 在场 100ms,注入合成负载能复现这个倍数(HANDOFF §5.72)。所以这里不能
|
||||
# 再推荐「继续改算法」——那是按 3.3 倍虚高的数去优化 30ms 的真实计算
|
||||
# 增量已生效时(§5.72 口径对齐后):单币 100ms ≈ 信号链 30ms + 追加
|
||||
# 2.81 根 37ms + 争抢 33ms。争抢只有 1.49x,加核收益有限;而追加那 37ms
|
||||
# 里约 22ms 纯属浪费——symbol 随机落 worker,各缓存都漏掉对方处理的根
|
||||
return (f"币数 {len(SYMS)} > 核数 {CORES},增量已生效,加 worker 无用"
|
||||
f"(worker 已等于核数)。单币 {i:.0f}ms 里真实计算约 30ms,"
|
||||
f"其余是 {CORES} 核上争抢的放大 —— 杠杆是加核或减币,"
|
||||
f"不是继续压算法")
|
||||
f"(worker 已等于核数)。单币 {i:.0f}ms 里争抢只占约 1.5x,"
|
||||
f"最便宜的一刀是按币绑定 worker(每次只追 1 根,省约三分之一),"
|
||||
f"其次是 add_indicators 增量化")
|
||||
|
||||
async def run(self) -> None:
|
||||
await self.start()
|
||||
|
||||
Reference in New Issue
Block a user