]> Cypherpunks repositories - gostls13.git/commit
math/rand: devirtualize interface call in Read
authorCarlo Alberto Ferraris <cafxx@strayorange.com>
Sat, 24 Aug 2019 11:42:41 +0000 (20:42 +0900)
committerBrad Fitzpatrick <bradfitz@golang.org>
Mon, 30 Sep 2019 15:43:34 +0000 (15:43 +0000)
commit5f1aeaeb77b36b92305b54acc4bd6a3319dce803
tree5020ab5d914c9a19a928b8324b6e90e32d869355
parent60f271358f07647be0de9ee8225b50a391ea5def
math/rand: devirtualize interface call in Read

This allows to inline the common case in which the Source is a
rngSource. On linux/amd64 in a VM:

name        old time/op  new time/op  delta
Read3-4     33.8ns ± 8%  18.5ns ± 8%  -45.38%  (p=0.000 n=10+10)
Read64-4     371ns ± 8%    70ns ± 7%  -81.00%  (p=0.000 n=10+10)
Read1000-4  5.33µs ± 5%  0.86µs ± 3%  -83.85%  (p=0.000 n=9+9)

Change-Id: Ibf47b0e9ecdfe62ffcb66d6a92f191800bdc740e
Reviewed-on: https://go-review.googlesource.com/c/go/+/191539
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/math/rand/rand.go