mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-11-01 16:29:29 +00:00
OpenAI Responses WS/HTTP-bridge 的 replay 历史此前每轮对全部正文做多次 深拷贝(构建、双份序列、保存点各一遍),长会话累计分配 O(T²),实测 128 turn x 10KiB 达 160MB+,是 #6382 内存持续增长直至 OOM 的主因。 改为共享不可变正文所有权: - extract 经零拷贝 string 视图 + gjson Index 直接切 payload 子切片, 并以 json.Valid 保持对断裂数组的既有错误语义 - 序列构建/sanitize/collector/保存点全部只传引用;跨持有者保存经 combineOpenAIWSReplayItems 新建头数组,正文不复制 - bridge 每轮一次解析,正常 replay 与 account-failover 序列共享正文 - 前缀比较增加字节级快路径,避免逐轮全历史 decode+encode - strict 状态可用时不再整包保留上一轮 payload 新增 128 turn 分配回归测试锚定上界(实测 2.5MB,深拷贝回归会击穿), 以及正文共享的所有权断言。