]>
Cypherpunks repositories - gostls13.git/commit
sync: add new Map method LoadAndDelete
This CL implements a LoadAndDelete method in sync.Map. Benchmark:
name time/op
LoadAndDeleteBalanced/*sync_test.RWMutexMap-12 98.8ns ± 1%
LoadAndDeleteBalanced/*sync.Map-12 10.3ns ±11%
LoadAndDeleteUnique/*sync_test.RWMutexMap-12 99.2ns ± 2%
LoadAndDeleteUnique/*sync.Map-12 6.63ns ±10%
LoadAndDeleteCollision/*sync_test.DeepCopyMap-12 140ns ± 0%
LoadAndDeleteCollision/*sync_test.RWMutexMap-12 75.2ns ± 2%
LoadAndDeleteCollision/*sync.Map-12 5.21ns ± 5%
In addition, Delete is bounded and more efficient if many collisions:
DeleteCollision/*sync_test.DeepCopyMap-12 120ns ± 2% 125ns ± 1% +3.80% (p=0.000 n=10+9)
DeleteCollision/*sync_test.RWMutexMap-12 73.5ns ± 3% 79.5ns ± 1% +8.03% (p=0.000 n=10+9)
DeleteCollision/*sync.Map-12 97.8ns ± 3% 5.9ns ± 4% -94.00% (p=0.000 n=10+10)
Fixes #33762
Change-Id: Ic8469a7861d27ab0edeface0078aad8af9b26c2f
Reviewed-on: https://go-review.googlesource.com/c/go/+/205899
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>