Skip to content

Commit 22e95df

Browse files
authored
feat: separate TCP and UDP buffer pools in Client and Server for improved memory management
1 parent 0e7ba30 commit 22e95df

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

internal/client.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,16 @@ func NewClient(parsedURL *url.URL, logger *logs.Logger) (*Client, error) {
3333
Common: Common{
3434
logger: logger,
3535
signalChan: make(chan string, semaphoreLimit),
36-
bufferPool: &sync.Pool{
36+
tcpBufferPool: &sync.Pool{
3737
New: func() any {
38-
b := make([]byte, 1048576) // 1MB
39-
return &b
38+
buf := make([]byte, tcpDataBufSize)
39+
return &buf
40+
},
41+
},
42+
udpBufferPool: &sync.Pool{
43+
New: func() any {
44+
buf := make([]byte, udpDataBufSize)
45+
return &buf
4046
},
4147
},
4248
},

internal/server.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,16 @@ func NewServer(parsedURL *url.URL, tlsCode string, tlsConfig *tls.Config, logger
3535
tlsCode: tlsCode,
3636
logger: logger,
3737
signalChan: make(chan string, semaphoreLimit),
38-
bufferPool: &sync.Pool{
38+
tcpBufferPool: &sync.Pool{
3939
New: func() any {
40-
b := make([]byte, 1048576) // 1MB
41-
return &b
40+
buf := make([]byte, tcpDataBufSize)
41+
return &buf
42+
},
43+
},
44+
udpBufferPool: &sync.Pool{
45+
New: func() any {
46+
buf := make([]byte, udpDataBufSize)
47+
return &buf
4248
},
4349
},
4450
},

0 commit comments

Comments
 (0)