package myth import ( "bytes" "sync" ) var bufferPool = sync.Pool{ New: func() any { return new(bytes.Buffer) }, } // NewBuffer alloc *bytes.Buffer from pool func NewBuffer() *bytes.Buffer { b := bufferPool.Get().(*bytes.Buffer) b.Reset() return b } // PutBuffer release *bytes.Buffer to pool func PutBuffer(b *bytes.Buffer) { bufferPool.Put(b) }