mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-09-01 13:04:02 +03:00
Memory optimizations for direct mode
This commit is contained in:
+13
-2
@@ -13,6 +13,15 @@ import (
|
|||||||
|
|
||||||
const directPipeBufferSize = 1024 * 1024
|
const directPipeBufferSize = 1024 * 1024
|
||||||
|
|
||||||
|
var (
|
||||||
|
directPipePool = sync.Pool{
|
||||||
|
New: func() interface{} {
|
||||||
|
rv := make([]byte, directPipeBufferSize)
|
||||||
|
return &rv
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
func directConnection(request *protocol.TelegramRequest) error {
|
func directConnection(request *protocol.TelegramRequest) error {
|
||||||
telegramConnRaw, err := obfuscated2.TelegramProtocol(request)
|
telegramConnRaw, err := obfuscated2.TelegramProtocol(request)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -42,8 +51,10 @@ func directPipe(dst io.WriteCloser, src io.ReadCloser, wg *sync.WaitGroup, logge
|
|||||||
wg.Done()
|
wg.Done()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
buf := make([]byte, directPipeBufferSize)
|
buf := directPipePool.Get().(*[]byte)
|
||||||
if _, err := io.CopyBuffer(dst, src, buf); err != nil {
|
defer directPipePool.Put(buf)
|
||||||
|
|
||||||
|
if _, err := io.CopyBuffer(dst, src, *buf); err != nil {
|
||||||
logger.Debugw("Cannot pump sockets", "error", err)
|
logger.Debugw("Cannot pump sockets", "error", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user