1
0
mirror of https://github.com/golang/go synced 2024-11-06 08:26:12 -07:00
go/doc
Changkun Ou 2e8dbae85c 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>
2020-02-25 14:31:55 +00:00
..
articles doc: document atexit_sleep_ms flag in race_detector 2020-01-03 23:49:42 +00:00
codewalk doc: convert remaining bash tests to Go 2019-11-14 21:33:00 +00:00
gopher doc/gopher: add model sheet 2018-07-18 04:00:10 +00:00
play doc/play: match the hello world snippet in x/website 2019-10-23 22:43:37 +00:00
progs doc: convert remaining bash tests to Go 2019-11-14 21:33:00 +00:00
asm.html doc: update ppc64 section for asm.html 2019-09-16 14:12:02 +00:00
cmd.html doc: remove extra br tags 2020-02-23 01:23:41 +00:00
contrib.html doc: clarify that contributing isn't just for code 2019-10-23 17:57:23 +00:00
contribute.html doc: 2020 is the Year of the Gopher 2020-01-02 17:36:29 +00:00
debugging_with_gdb.html runtime: support all as parameter in gdb goroutine commands. 2019-04-29 18:11:11 +00:00
diagnostics.html doc: document GODEBUG options to disable use of instruction set extensions 2018-12-18 14:59:36 +00:00
editors.html doc: fix spelling of comp[]hensive to comp[r]ehensive 2018-10-12 22:59:05 +00:00
effective_go.html doc: reword to avoid the confusing term 'anew' 2019-09-20 08:06:51 +00:00
gccgo_contribute.html all: remove trailing whitespace from HTML files 2019-09-18 18:32:20 +00:00
gccgo_install.html all: remove trailing whitespace from HTML files 2019-09-18 18:32:20 +00:00
go1.1.html doc: s/tool chain/toolchain/ 2018-01-09 21:47:03 +00:00
go1.2.html doc: use HTTPS for links 2018-06-13 13:45:01 +00:00
go1.3.html doc: rewrite reference to plan9.bell-labs.com to 9p.io 2019-08-19 21:42:54 +00:00
go1.4.html doc: use HTTPS for links 2018-06-13 13:45:01 +00:00
go1.5.html
go1.6.html doc: align documents link 2019-08-26 17:33:52 +00:00
go1.7.html doc: align documents link 2019-08-26 17:33:52 +00:00
go1.8.html doc: align documents link 2019-08-26 17:33:52 +00:00
go1.9.html doc: rename HTML element IDs to avoid duplicates 2020-02-05 14:32:50 +00:00
go1.10.html doc: align documents link 2019-08-26 17:33:52 +00:00
go1.11.html doc: rename HTML element IDs to avoid duplicates 2020-02-05 14:32:50 +00:00
go1.12.html doc: align documents link 2019-08-26 17:33:52 +00:00
go1.13.html doc: rename HTML element IDs to avoid duplicates 2020-02-05 14:32:50 +00:00
go1.14.html doc/go1.14: document that freebsd/arm64 requires FreeBSD 12.0 or later 2020-02-24 20:58:33 +00:00
go1.15.html sync: add new Map method LoadAndDelete 2020-02-25 14:31:55 +00:00
go1.html doc: change anchor URLs from golang.org/dl/ to /dl/ 2018-01-20 04:13:12 +00:00
go1compat.html doc: s/tool chain/toolchain/ 2018-01-09 21:47:03 +00:00
go_faq.html all: remove trailing whitespace from HTML files 2019-09-18 18:32:20 +00:00
go_mem.html doc: go_mem: clarify Once docs 2018-12-21 21:46:38 +00:00
go_spec.html spec: add missing space in EBNF 2020-01-15 05:32:51 +00:00
go-logo-black.png
go-logo-blue.png
go-logo-white.png
help.html doc: remove a Google+ link since it doesn't exist anymore 2019-06-18 03:41:59 +00:00
ie.css
install-source.html doc: add missing p in install from source page 2019-12-07 15:57:30 +00:00
install.html doc/install.html: streamline the “Test your installation” step and make it module-agnostic 2020-02-05 18:27:48 +00:00
share.png
tos.html