|
|
@@ -11,6 +11,8 @@ const (
|
|
|
Size = 2048
|
|
|
)
|
|
|
|
|
|
+var pool = bytespool.GetPool(Size)
|
|
|
+
|
|
|
// Buffer is a recyclable allocation of a byte array. Buffer.Release() recycles
|
|
|
// the buffer into an internal buffer pool, in order to recreate a buffer more
|
|
|
// quickly.
|
|
|
@@ -20,6 +22,21 @@ type Buffer struct {
|
|
|
end int32
|
|
|
}
|
|
|
|
|
|
+// New creates a Buffer with 0 length and 2K capacity.
|
|
|
+func New() *Buffer {
|
|
|
+ return &Buffer{
|
|
|
+ v: pool.Get().([]byte),
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// StackNew creates a new Buffer object on stack.
|
|
|
+// This method is for buffers that is released in the same function.
|
|
|
+func StackNew() Buffer {
|
|
|
+ return Buffer{
|
|
|
+ v: pool.Get().([]byte),
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// Release recycles the buffer into an internal buffer pool.
|
|
|
func (b *Buffer) Release() {
|
|
|
if b == nil || b.v == nil {
|
|
|
@@ -193,20 +210,3 @@ func (b *Buffer) ReadFullFrom(reader io.Reader, size int32) (int64, error) {
|
|
|
func (b *Buffer) String() string {
|
|
|
return string(b.Bytes())
|
|
|
}
|
|
|
-
|
|
|
-var pool = bytespool.GetPool(Size)
|
|
|
-
|
|
|
-// New creates a Buffer with 0 length and 2K capacity.
|
|
|
-func New() *Buffer {
|
|
|
- return &Buffer{
|
|
|
- v: pool.Get().([]byte),
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// StackNew creates a new Buffer object on stack.
|
|
|
-// This method is for buffers that is released in the same function.
|
|
|
-func StackNew() Buffer {
|
|
|
- return Buffer{
|
|
|
- v: pool.Get().([]byte),
|
|
|
- }
|
|
|
-}
|