diff options
| author | Martin Möhrmann <moehrmann@google.com> | 2018-10-22 20:22:55 +0200 |
|---|---|---|
| committer | Martin Möhrmann <martisch@uos.de> | 2018-10-23 06:42:56 +0000 |
| commit | 3b091bf6cceca868e2063a2c8b3cec90411ea18e (patch) | |
| tree | f6b28ea426eddfb1c7765b74eecee91485e324f8 /src/runtime/slice_test.go | |
| parent | e85b8db604bd6dd84502708434a19596b54468b5 (diff) | |
| download | go-3b091bf6cceca868e2063a2c8b3cec90411ea18e.tar.xz | |
runtime: use multiplication with overflow check for growslice
This improves performance for slices with an element size larger
than 32 bytes and removes loading a value from the maxElems
array for smaller element sizes.
name old time/op new time/op delta
GrowSlice/Byte 41.4ns ± 2% 41.5ns ± 1% ~ (p=0.366 n=10+9)
GrowSlice/Int16 51.1ns ± 2% 51.0ns ± 2% ~ (p=0.985 n=10+10)
GrowSlice/Int 64.0ns ± 1% 64.2ns ± 1% ~ (p=0.180 n=10+10)
GrowSlice/Ptr 90.8ns ± 1% 90.7ns ± 1% ~ (p=0.858 n=9+10)
GrowSlice/Struct/24 108ns ± 0% 108ns ± 2% ~ (p=0.488 n=8+9)
GrowSlice/Struct/32 118ns ± 2% 117ns ± 2% ~ (p=0.327 n=10+10)
GrowSlice/Struct/40 159ns ± 1% 148ns ± 1% -6.87% (p=0.000 n=10+9)
Updates #21588
Change-Id: I443b82972d379b1befa791f9ee468b3adc6bb760
Reviewed-on: https://go-review.googlesource.com/c/143798
Run-TryBot: Martin Möhrmann <martisch@uos.de>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/runtime/slice_test.go')
0 files changed, 0 insertions, 0 deletions
