mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2026-01-04 22:55:48 +08:00
使用空struct{}代替bool节约内存
This commit is contained in:
@@ -2,6 +2,7 @@ package nodes
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/TeaOSLab/EdgeNode/internal/zero"
|
||||
"github.com/cespare/xxhash"
|
||||
"github.com/iwind/TeaGo/Tea"
|
||||
"github.com/iwind/TeaGo/logs"
|
||||
@@ -17,23 +18,23 @@ import (
|
||||
)
|
||||
|
||||
// 文本mime-type列表
|
||||
var textMimeMap = map[string]bool{
|
||||
"application/atom+xml": true,
|
||||
"application/javascript": true,
|
||||
"application/x-javascript": true,
|
||||
"application/json": true,
|
||||
"application/rss+xml": true,
|
||||
"application/x-web-app-manifest+json": true,
|
||||
"application/xhtml+xml": true,
|
||||
"application/xml": true,
|
||||
"image/svg+xml": true,
|
||||
"text/css": true,
|
||||
"text/plain": true,
|
||||
"text/javascript": true,
|
||||
"text/xml": true,
|
||||
"text/html": true,
|
||||
"text/xhtml": true,
|
||||
"text/sgml": true,
|
||||
var textMimeMap = map[string]zero.Zero{
|
||||
"application/atom+xml": {},
|
||||
"application/javascript": {},
|
||||
"application/x-javascript": {},
|
||||
"application/json": {},
|
||||
"application/rss+xml": {},
|
||||
"application/x-web-app-manifest+json": {},
|
||||
"application/xhtml+xml": {},
|
||||
"application/xml": {},
|
||||
"image/svg+xml": {},
|
||||
"text/css": {},
|
||||
"text/plain": {},
|
||||
"text/javascript": {},
|
||||
"text/xml": {},
|
||||
"text/html": {},
|
||||
"text/xhtml": {},
|
||||
"text/sgml": {},
|
||||
}
|
||||
|
||||
// 调用本地静态资源
|
||||
|
||||
@@ -2,6 +2,7 @@ package nodes
|
||||
|
||||
import (
|
||||
teaconst "github.com/TeaOSLab/EdgeNode/internal/const"
|
||||
"github.com/TeaOSLab/EdgeNode/internal/zero"
|
||||
"github.com/iwind/TeaGo/assert"
|
||||
"runtime"
|
||||
"sync"
|
||||
@@ -72,7 +73,7 @@ func TestHTTPRequest_httpRequestNextId(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestHTTPRequest_httpRequestNextId_Concurrent(t *testing.T) {
|
||||
var m = map[string]bool{}
|
||||
var m = map[string]zero.Zero{}
|
||||
var locker = sync.Mutex{}
|
||||
|
||||
var count = 4000
|
||||
@@ -94,7 +95,7 @@ func TestHTTPRequest_httpRequestNextId_Concurrent(t *testing.T) {
|
||||
countDuplicated++
|
||||
}
|
||||
|
||||
m[requestId] = true
|
||||
m[requestId] = zero.New()
|
||||
locker.Unlock()
|
||||
}()
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
"crypto/tls"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
|
||||
"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
|
||||
"github.com/TeaOSLab/EdgeNode/internal/zero"
|
||||
"github.com/iwind/TeaGo/Tea"
|
||||
"golang.org/x/net/http2"
|
||||
"io"
|
||||
@@ -18,7 +19,7 @@ import (
|
||||
)
|
||||
|
||||
var httpErrorLogger = log.New(io.Discard, "", 0)
|
||||
var metricNewConnMap = map[string]bool{} // remoteAddr => bool
|
||||
var metricNewConnMap = map[string]zero.Zero{} // remoteAddr => bool
|
||||
var metricNewConnMapLocker = &sync.Mutex{}
|
||||
|
||||
type contextKey struct {
|
||||
@@ -56,7 +57,7 @@ func (this *HTTPListener) Serve() error {
|
||||
// 为指标存储连接信息
|
||||
if sharedNodeConfig.HasHTTPConnectionMetrics() {
|
||||
metricNewConnMapLocker.Lock()
|
||||
metricNewConnMap[conn.RemoteAddr().String()] = true
|
||||
metricNewConnMap[conn.RemoteAddr().String()] = zero.New()
|
||||
metricNewConnMapLocker.Unlock()
|
||||
}
|
||||
case http.StateClosed:
|
||||
|
||||
Reference in New Issue
Block a user