25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

28 lines
380 B

  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. }