perf: 消息内存按字节预算,杜绝大报文流撑爆内存

- 新增 MessageRing:条数上限 + 每连接 32MB 字节预算双重驱逐
  (从最旧丢弃,均摊 O(1));预分配容量按设置钳制在 512
- 单条 payload 保留上限 256KB → 128KB;MqttRecord::retained_bytes
  计入文本与原始字节,供预算驱逐与资源监控展示
- 清空消息统一走 clear_messages;设置页标注字节预算兜底说明
- 新增单元测试:条数驱逐、字节预算、超预算单条保留、驱逐顺序
This commit is contained in:
2026-09-29 17:00:34 +08:00
parent b862a50b04
commit 85a3bfcb1b
4 changed files with 164 additions and 17 deletions
+1 -1
View File
@@ -1765,7 +1765,7 @@ impl ConnectionView {
view.detail_format = DetailFormat::Auto;
if let Some(app) = view.app.upgrade() {
app.update(cx, |app, cx| {
app.messages.remove(clear_id.as_str());
app.clear_messages(&clear_id);
cx.notify();
});
}