diff options
| author | luwenpeng <[email protected]> | 2023-08-20 15:03:18 +0800 |
|---|---|---|
| committer | luwenpeng <[email protected]> | 2023-08-20 15:03:58 +0800 |
| commit | c664b7effcbda542dcb2bcaa3c62eb5087246b84 (patch) | |
| tree | 7c750f7fcfeb08fb712225fc4b8174be57a4efdd | |
| parent | f18d8eadca0a2a81c7557c0b102e0186cfb1de0b (diff) | |
[bugfix] create event vector / session manager with capacity
| -rw-r--r-- | src/event/event.rs | 2 | ||||
| -rw-r--r-- | 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), |
