tailscale/util
Joe Tsai 77a92f326d
util/deephash: avoid using sync.Pool for reflect.MapIter (#5333)
In Go 1.19, the reflect.Value.MapRange method uses "function outlining"
so that the allocation of reflect.MapIter is inlinable by the caller.
If the iterator doesn't escape the caller, it can be stack allocated.
See https://go.dev/cl/400675

Performance:

	name               old time/op    new time/op    delta
	HashMapAcyclic-24    31.9µs ± 2%    32.1µs ± 1%   ~     (p=0.075 n=10+10)

	name               old alloc/op   new alloc/op   delta
	HashMapAcyclic-24     0.00B          0.00B        ~     (all equal)

Signed-off-by: Joe Tsai <joetsai@digital-static.net>
2022-08-11 00:33:40 -07:00
..
cibuild all: use cibuild.On 2022-03-18 15:19:26 -07:00
clientmetric all: gofmt for Go 1.19 2022-08-02 10:08:05 -07:00
cloudenv all: use syncs.AtomicValue 2022-08-04 11:52:16 -07:00
cmpver util/cmpver: move into OSS from corp repo. 2021-04-23 20:55:45 -07:00
codegen all: convert more code to use net/netip directly 2022-07-25 21:53:49 -07:00
deephash util/deephash: avoid using sync.Pool for reflect.MapIter (#5333) 2022-08-11 00:33:40 -07:00
dnsname all: use Go 1.18's strings.Cut 2022-03-16 14:53:59 -07:00
endian all: gofmt with Go 1.17 2021-08-05 15:54:00 -07:00
groupmember util/groupmember: remove redundant code (#4298) 2022-03-26 21:45:06 -07:00
jsonutil all: use any instead of interface{} 2022-03-17 11:35:09 -07:00
lineread util/lineread: add docs to Reader 2020-11-19 12:14:58 -08:00
mak util/mak: move tailssh's mapSet into a new package for reuse elsewhere 2022-04-21 21:20:10 -07:00
multierr all: gofmt for Go 1.19 2022-08-02 10:08:05 -07:00
must util/must: rename Do->Get, add Do 2022-08-06 09:30:10 -07:00
osshare all: gofmt with Go 1.17 2021-08-05 15:54:00 -07:00
pidowner all: gofmt with Go 1.17 2021-08-05 15:54:00 -07:00
precompress cmd/tsconnect,util/precompress: move precompression to its own package 2022-08-03 17:44:57 -07:00
racebuild all: gofmt with Go 1.17 2021-08-05 15:54:00 -07:00
sha256x util/sha256x: make Hash.Sum non-escaping (#5338) 2022-08-10 17:31:44 -07:00
singleflight all: gofmt for Go 1.19 2022-08-02 10:08:05 -07:00
strs util/strs: add new package for string utility funcs 2022-08-05 15:06:08 -07:00
systemd all: gofmt for Go 1.19 2022-08-02 10:08:05 -07:00
uniq all: use any instead of interface{} 2022-03-17 11:35:09 -07:00
winutil net/dns, paths, util/winutil: change net/dns/windowsManager NRPT management to support more than 50 domains. 2022-05-27 14:56:09 -06:00