diff options
| author | Carlo Alberto Ferraris <cafxx@strayorange.com> | 2019-08-24 08:59:01 +0900 |
|---|---|---|
| committer | Emmanuel Odeke <emm.odeke@gmail.com> | 2019-09-29 14:27:05 +0000 |
| commit | 931365763a294950200096d071a35f799ffade2c (patch) | |
| tree | ad6eb4ac98137df44e6a3b0dc74f5c7bcb4f378e /src/database/sql | |
| parent | 57662b1575030aa09043cd7a48425abdc6e0e0a3 (diff) | |
| download | go-931365763a294950200096d071a35f799ffade2c.tar.xz | |
math/rand: devirtualize interface in lockedSource
Avoid interface calls, enable inlining, and store the rngSource close to the
Mutex to exploit better memory locality.
Also add a benchmark to properly measure the threadsafe nature of globalRand.
On a linux/amd64 VM:
name old time/op new time/op delta
Int63Threadsafe-4 36.4ns ±12% 20.6ns ±11% -43.52% (p=0.000 n=30+30)
Int63ThreadsafeParallel-4 79.3ns ± 5% 56.5ns ± 5% -28.69% (p=0.000 n=29+30)
Change-Id: I6ab912c1a1e9afc7bacd8e72c82d4d50d546a510
Reviewed-on: https://go-review.googlesource.com/c/go/+/191538
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/database/sql')
0 files changed, 0 insertions, 0 deletions
