diff options
| author | Martin Möhrmann <moehrmann@google.com> | 2018-10-22 20:40:03 +0200 |
|---|---|---|
| committer | Martin Möhrmann <martisch@uos.de> | 2018-10-23 16:42:58 +0000 |
| commit | 286c7ae10c71a8faeba22e29928afe7fce7e2750 (patch) | |
| tree | 2494f5b4c355ce97a804e8e2123501410b090312 /src/runtime/malloc.go | |
| parent | 72f099c36bf2599ce73d054d463fc2950cfdcb05 (diff) | |
| download | go-286c7ae10c71a8faeba22e29928afe7fce7e2750.tar.xz | |
runtime: use multiplication with overflow check for makechan
This improves performance for channels with an element size
larger than 32 bytes and removes loading a value from the
maxElems array for smaller element sizes.
MakeChan/Byte 88.8ns ± 6% 85.2ns ± 1% -4.03% (p=0.000 n=10+10)
MakeChan/Int 100ns ± 4% 96ns ± 2% -3.72% (p=0.000 n=9+10)
MakeChan/Ptr 124ns ± 3% 126ns ± 2% ~ (p=0.068 n=10+10)
MakeChan/Struct/0 80.5ns ± 2% 80.7ns ± 2% ~ (p=0.697 n=10+10)
MakeChan/Struct/32 143ns ± 4% 141ns ± 2% ~ (p=0.221 n=10+10)
MakeChan/Struct/40 169ns ± 2% 159ns ± 4% -6.26% (p=0.000 n=10+10)
Updates #21588
Change-Id: Ifbf12a5af2f0ec7e1d2241ecfffab020e9abec48
Reviewed-on: https://go-review.googlesource.com/c/144017
Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'src/runtime/malloc.go')
0 files changed, 0 insertions, 0 deletions
