From c664b7effcbda542dcb2bcaa3c62eb5087246b84 Mon Sep 17 00:00:00 2001 From: luwenpeng Date: Sun, 20 Aug 2023 15:03:18 +0800 Subject: [bugfix] create event vector / session manager with capacity --- src/event/event.rs | 2 +- src/session/manager.rs | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/event/event.rs b/src/event/event.rs index eadd622..bef0efe 100644 --- a/src/event/event.rs +++ b/src/event/event.rs @@ -37,7 +37,7 @@ impl EventManager { let mut vec = vec.borrow_mut(); vec.push(handle); } else { - let mut vec = vec![]; + let mut vec = Vec::with_capacity(1024); vec.push(handle); self.cared_event.insert(index, RefCell::new(vec)); } diff --git a/src/session/manager.rs b/src/session/manager.rs index ce07223..3128da5 100644 --- a/src/session/manager.rs +++ b/src/session/manager.rs @@ -17,9 +17,9 @@ pub struct SessionManager { ******************************************************************************/ impl SessionManager { - pub fn new() -> SessionManager { + pub fn new(capacity: usize) -> SessionManager { SessionManager { - sessions: HashMap::new(), + sessions: HashMap::with_capacity(capacity), } } @@ -41,7 +41,7 @@ impl SessionManager { pub fn expire_sessions(&mut self) { let now = Utc::now().timestamp(); - let mut expired_sessions = Vec::new(); + let mut expired_sessions = Vec::with_capacity(1024); for (session_id, session) in &self.sessions { if session.get_session_expire_ts() < now { expired_sessions.push(session_id.clone()); @@ -76,7 +76,7 @@ mod tests { #[test] fn test_session_manager() { // Create Session Manager - let mut session_mgr = SessionManager::new(); + let mut session_mgr = SessionManager::new(1024); let five_tuple_4 = FiveTuple::from_v4( Ipv4Addr::new(192, 168, 0, 1), -- cgit v1.2.3