From 4a46817cf6b8c523f96cb912abaded392eed676f Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Thu, 31 May 2018 12:05:25 +0200 Subject: [PATCH] optimize map usage --- app/router/condition.go | 8 ++------ proxy/vmess/encoding/server.go | 4 ++++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/router/condition.go b/app/router/condition.go index f55f79ce..08e37a2c 100644 --- a/app/router/condition.go +++ b/app/router/condition.go @@ -164,18 +164,14 @@ func (m *CachableDomainMatcher) ApplyDomain(domain string) bool { now := time.Now() if len(m.cache) > 256 && now.Sub(m.lastScan)/time.Second > 5 { - remove := make([]string, 0, 128) - now := time.Now() for k, v := range m.cache { if now.Sub(v.timestamp)/time.Second > 60 { - remove = append(remove, k) + delete(m.cache, k) } } - for _, v := range remove { - delete(m.cache, v) - } + m.lastScan = now } diff --git a/proxy/vmess/encoding/server.go b/proxy/vmess/encoding/server.go index 58677212..db5c4cad 100644 --- a/proxy/vmess/encoding/server.go +++ b/proxy/vmess/encoding/server.go @@ -75,6 +75,10 @@ func (h *SessionHistory) removeExpiredEntries() { h.Lock() defer h.Unlock() + if len(h.cache) == 0 { + return + } + for session, expire := range h.cache { if expire.Before(now) { delete(h.cache, session)