mirror of
https://github.com/golang/go
synced 2024-11-26 07:27:59 -07:00
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>
This commit is contained in:
parent
08d4cc20ca
commit
d2f002cb39
@ -479,7 +479,7 @@ func (t Time) String() string {
|
||||
}
|
||||
m1, m2 := m2/1e9, m2%1e9
|
||||
m0, m1 := m1/1e9, m1%1e9
|
||||
var buf []byte
|
||||
buf := make([]byte, 0, 24)
|
||||
buf = append(buf, " m="...)
|
||||
buf = append(buf, sign)
|
||||
wid := 0
|
||||
@ -498,7 +498,8 @@ func (t Time) String() string {
|
||||
// GoString implements fmt.GoStringer and formats t to be printed in Go source
|
||||
// code.
|
||||
func (t Time) GoString() string {
|
||||
buf := []byte("time.Date(")
|
||||
buf := make([]byte, 0, 70)
|
||||
buf = append(buf, "time.Date("...)
|
||||
buf = appendInt(buf, t.Year(), 0)
|
||||
month := t.Month()
|
||||
if January <= month && month <= December {
|
||||
|
Loading…
Reference in New Issue
Block a user