]> Cypherpunks repositories - gostls13.git/commit
runtime: use multiplication with overflow check for makechan
authorMartin Möhrmann <moehrmann@google.com>
Mon, 22 Oct 2018 18:40:03 +0000 (20:40 +0200)
committerMartin Möhrmann <martisch@uos.de>
Tue, 23 Oct 2018 16:42:58 +0000 (16:42 +0000)
commit286c7ae10c71a8faeba22e29928afe7fce7e2750
tree2494f5b4c355ce97a804e8e2123501410b090312
parent72f099c36bf2599ce73d054d463fc2950cfdcb05
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>
src/runtime/chan.go