summaryrefslogtreecommitdiff
path: root/internal/io/pool/builder.go
blob: 89fcf81338b289fe0d87b4b918af286f2ab59ca7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package pool

import (
	"strings"
	"sync"
)

// BuilderBuffer is there to optimize memory allocations (DTail allocates a lot
// of memory while reading log data otherwise)
var BuilderBuffer = sync.Pool{
	New: func() interface{} {
		sb := strings.Builder{}
		return &sb
	},
}

// RecycleBuilderBuffer recycles the buffer again.
func RecycleBuilderBuffer(sb *strings.Builder) {
	sb.Reset()
	BuilderBuffer.Put(sb)
}