buffer.go 380 B

123456789101112131415161718192021222324252627
  1. package kafka
  2. import (
  3. "bytes"
  4. "sync"
  5. )
  6. var bufferPool = sync.Pool{
  7. New: func() interface{} { return newBuffer() },
  8. }
  9. func newBuffer() *bytes.Buffer {
  10. b := new(bytes.Buffer)
  11. b.Grow(65536)
  12. return b
  13. }
  14. func acquireBuffer() *bytes.Buffer {
  15. return bufferPool.Get().(*bytes.Buffer)
  16. }
  17. func releaseBuffer(b *bytes.Buffer) {
  18. if b != nil {
  19. b.Reset()
  20. bufferPool.Put(b)
  21. }
  22. }