mirror of
https://github.com/golang/go
synced 2024-11-19 07:44:49 -07:00
fmt: hold on to all free buffers, regardless of size
This code made sense before fmt switched to using sync.Pool, but a sync.Pool clears all items on GC, so not reusing something based on size is just a waste of memory. Change-Id: I201312b0ee6c572ff3c0ffaf71e42623a160d23f Reviewed-on: https://go-review.googlesource.com/21480 Reviewed-by: Rob Pike <r@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
163ff700b8
commit
0656da910a
@ -132,10 +132,6 @@ func newPrinter() *pp {
|
|||||||
|
|
||||||
// free saves used pp structs in ppFree; avoids an allocation per invocation.
|
// free saves used pp structs in ppFree; avoids an allocation per invocation.
|
||||||
func (p *pp) free() {
|
func (p *pp) free() {
|
||||||
// Don't hold on to pp structs with large buffers.
|
|
||||||
if cap(p.buf) > 1024 {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
p.buf = p.buf[:0]
|
p.buf = p.buf[:0]
|
||||||
p.arg = nil
|
p.arg = nil
|
||||||
p.value = reflect.Value{}
|
p.value = reflect.Value{}
|
||||||
|
Loading…
Reference in New Issue
Block a user