From 4bb9bdd27d3f2d8f6e29886ba2e8f8e1109307e2 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 4 Mar 2026 08:47:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20event.rs=20=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E5=85=8B=E9=9A=86=E6=93=8D=E4=BD=9C=EF=BC=8C=E5=87=8F?= =?UTF-8?q?=E5=B0=91=20monitor=20=E7=9A=84=E5=85=8B=E9=9A=86=E6=AC=A1?= =?UTF-8?q?=E6=95=B0=E4=BB=8E=203=20=E6=AC=A1=E5=87=8F=E5=B0=91=E5=88=B0?= =?UTF-8?q?=201=20=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/event.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/event.rs b/src/event.rs index 93a85f0..f844243 100644 --- a/src/event.rs +++ b/src/event.rs @@ -159,14 +159,14 @@ impl EventManager { value_changed, }; - if let Err(e) = connection_manager.update_point_monitor_data(monitor.clone()).await { + // 只克隆一次 monitor,减少内存分配 + let monitor_clone = monitor.clone(); + if let Err(e) = connection_manager.update_point_monitor_data(monitor_clone).await { tracing::error!("Failed to update point monitor data for point {}: {}", point_id, e); } if let Some(ws_manager) = &ws_manager_clone { - let ws_message = crate::websocket::WsMessage::PointNewValue( - monitor.clone(), - ); + let ws_message = crate::websocket::WsMessage::PointNewValue(monitor); if let Err(e) = ws_manager.send_to_public(ws_message.clone()).await { tracing::error!("Failed to send WebSocket message to public room: {}", e);