]> Cypherpunks repositories - gostls13.git/commitdiff
fmt: hold on to all free buffers, regardless of size
authorBrad Fitzpatrick <bradfitz@golang.org>
Sun, 3 Apr 2016 01:34:29 +0000 (01:34 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Sun, 3 Apr 2016 06:20:37 +0000 (06:20 +0000)
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>

src/fmt/print.go

index 1a0b51a5a93a616fb4165acc3458095b208ad4dc..d071dcfb31efb0e0c0011a2cb62e7c22c75c683e 100644 (file)
@@ -132,10 +132,6 @@ func newPrinter() *pp {
 
 // free saves used pp structs in ppFree; avoids an allocation per invocation.
 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.arg = nil
        p.value = reflect.Value{}