a2d7a2aeb1
To get the benefit of this optimization requires help from the Go toolchain. The changes are upstream at https://golang.org/cl/320929, and have been pulled into the Tailscale fork at https://github.com/tailscale/go/commit/728ecc58fd5c010c04bb7c8a56d238167e7d888f. It also requires building with the build tag tailscale_go. name old time/op new time/op delta Hash-8 14.0µs ± 0% 13.6µs ± 0% -2.88% (p=0.008 n=5+5) HashMapAcyclic-8 24.3µs ± 1% 21.2µs ± 1% -12.47% (p=0.008 n=5+5) name old alloc/op new alloc/op delta Hash-8 2.16kB ± 0% 1.58kB ± 0% -27.01% (p=0.008 n=5+5) HashMapAcyclic-8 2.53kB ± 0% 0.15kB ± 0% -93.99% (p=0.008 n=5+5) name old allocs/op new allocs/op delta Hash-8 77.0 ± 0% 49.0 ± 0% -36.36% (p=0.008 n=5+5) HashMapAcyclic-8 202 ± 0% 4 ± 0% -98.02% (p=0.008 n=5+5) Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com> setkey