]> Cypherpunks.ru repositories - gostls13.git/commit
time/format: avoid growslice in time.String()/time.GoString()
authorkorzhao <korzhao95@gmail.com>
Fri, 20 Aug 2021 23:26:19 +0000 (07:26 +0800)
committerAlexander Rakoczy <alex@golang.org>
Wed, 25 Aug 2021 18:27:41 +0000 (18:27 +0000)
commitd2f002cb39bebdfac560282a43f3199c5d0903d7
tree27d2d7af4211c2f7c1fc44817d23f12f872278d7
parent08d4cc20cad0e95b4e368c2f38268199f9c68548
time/format: avoid growslice in time.String()/time.GoString()

Pre-allocate the slice of buf with enough capacity
to avoid growslice calls.

benchmark                   old ns/op     new ns/op     delta
BenchmarkTimeString-4       493           409           -17.12%
BenchmarkTimeGoString-4     309           182           -41.30%

benchmark                   old allocs     new allocs     delta
BenchmarkTimeString-4       5              3              -40.00%
BenchmarkTimeGoString-4     4              1              -75.00%

benchmark                   old bytes     new bytes     delta
BenchmarkTimeString-4       152           128           -15.79%
BenchmarkTimeGoString-4     248           80            -67.74%

Change-Id: I64eabe2ab0b3d4a846453c2e8e548a831d720b8c
Reviewed-on: https://go-review.googlesource.com/c/go/+/343971
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Trust: Alexander Rakoczy <alex@golang.org>
src/time/format.go