greatroar
198028d627
lib/rand: Optimizations ( #7964 )
...
rand.secureSource.Uint64 no longer allocates. rand.String uses a
strings.Builder. Benchmark results on linux/amd64:
name old time/op new time/op delta
SecureSource-8 69.1ns ± 3% 51.7ns ± 3% -25.21% (p=0.000 n=20+10)
String-8 2.66µs ± 2% 1.95µs ± 1% -26.61% (p=0.000 n=10+10)
name old alloc/op new alloc/op delta
SecureSource-8 8.00B ± 0% 0.00B -100.00% (p=0.000 n=20+10)
String-8 288B ± 0% 32B ± 0% -88.89% (p=0.000 n=10+10)
name old allocs/op new allocs/op delta
SecureSource-8 1.00 ± 0% 0.00 -100.00% (p=0.000 n=20+10)
String-8 33.0 ± 0% 1.0 ± 0% -96.97% (p=0.000 n=10+10)
2021-09-26 12:15:39 +02:00
greatroar
56b5352f64
all: Use crypt/rand through its buffered version, but not in benchmarks ( #7420 )
2021-03-02 19:17:20 +01:00
greatroar
c930b2e9e2
lib/rand: Various fixes ( #6474 )
2020-03-30 23:26:28 +02:00
Jakob Borg
f7fc0c1d3e
all: Update license url to https (ref #3976 )
2017-02-09 08:04:16 +01:00
Jakob Borg
e6b78e5d56
lib/rand: Break out random functions into separate package
...
The intention for this package is to provide a combination of the
security of crypto/rand and the convenience of math/rand. It should be
the first choice of random data unless ultimate performance is required
and the usage is provably irrelevant from a security standpoint.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3186
2016-05-26 07:02:56 +00:00