code: func NewSizedBufferPool(size int, alloc int) (bp *SizedBufferPool) {
  	return &SizedBufferPool{
  		c: make(chan *bytes.Buffer, size),
  		a: alloc,
  	}
  }
docs: // SizedBufferPool creates a new BufferPool bounded to the given size.
  // size defines the number of buffers to be retained in the pool and alloc sets
  // the initial capacity of new buffers to minimize calls to make().
  //
  // The value of alloc should seek to provide a buffer that is representative of
  // most data written to the the buffer (i.e. 95th percentile) without being
  // overly large (which will increase static memory consumption). You may wish to
  // track the capacity of your last N buffers (i.e. using an []int) prior to
  // returning them to the pool as input into calculating a suitable alloc value.