mirror of https://github.com/ehang-io/nps
44 lines
732 B
Go
44 lines
732 B
Go
package utils
|
|
|
|
import (
|
|
"sync"
|
|
)
|
|
|
|
const poolSize = 64 * 1024
|
|
const poolSizeSmall = 100
|
|
const poolSizeUdp = 1472
|
|
const poolSizeCopy = 32 * 1024
|
|
|
|
var BufPool = sync.Pool{
|
|
New: func() interface{} {
|
|
return make([]byte, poolSize)
|
|
},
|
|
}
|
|
|
|
var BufPoolUdp = sync.Pool{
|
|
New: func() interface{} {
|
|
return make([]byte, poolSizeUdp)
|
|
},
|
|
}
|
|
var BufPoolMax = sync.Pool{
|
|
New: func() interface{} {
|
|
return make([]byte, poolSize)
|
|
},
|
|
}
|
|
var BufPoolSmall = sync.Pool{
|
|
New: func() interface{} {
|
|
return make([]byte, poolSizeSmall)
|
|
},
|
|
}
|
|
var BufPoolCopy = sync.Pool{
|
|
New: func() interface{} {
|
|
return make([]byte, poolSizeCopy)
|
|
},
|
|
}
|
|
|
|
func PutBufPoolCopy(buf []byte) {
|
|
if cap(buf) == poolSizeCopy {
|
|
BufPoolCopy.Put(buf[:poolSizeCopy])
|
|
}
|
|
}
|