summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluwenpeng <[email protected]>2023-08-20 15:03:18 +0800
committerluwenpeng <[email protected]>2023-08-20 15:03:58 +0800
commitc664b7effcbda542dcb2bcaa3c62eb5087246b84 (patch)
tree7c750f7fcfeb08fb712225fc4b8174be57a4efdd
parentf18d8eadca0a2a81c7557c0b102e0186cfb1de0b (diff)
[bugfix] create event vector / session manager with capacity
-rw-r--r--src/event/event.rs2
-rw-r--r--src/session/manager.rs8
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),