package pool import ( "bytes" "sync" ) var bufferPool = sync.Pool{ New: func() interface{} { return &bytes.Buffer{} }, } // NewBuffer get Buffer from poll func NewBuffer() *bytes.Buffer { b := bufferPool.Get().(*bytes.Buffer) b.Reset() return b } // PutBuffer add *bytes.Buffer to the pool. func PutBuffer(b *bytes.Buffer) { b.Reset() bufferPool.Put(b) }