| Age | Commit message (Collapse) | Author |
|
Also, rename Map benchmarks to make them easier to single out via
regexp.
Change-Id: I4dcb066745aba1c340f56050d08539ae2976274d
Reviewed-on: https://go-review.googlesource.com/c/go/+/606461
Reviewed-by: David Chase <drchase@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Michael Knyszek <mknyszek@google.com>
|
|
Fixes #61696
Change-Id: I0a31afd3bc433fc84280d56f2798bda10da61eba
GitHub-Last-Rev: 17bedc864f1685178a42b59f7083677a6124f831
GitHub-Pull-Request: golang/go#61702
Reviewed-on: https://go-review.googlesource.com/c/go/+/515015
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: qiulaidongfeng <2645477756@qq.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
|
|
name time/op
SwapCollision/*sync_test.DeepCopyMap-8 235ns ± 0%
SwapCollision/*sync_test.RWMutexMap-8 145ns ± 0%
SwapCollision/*sync.Map-8 153ns ± 0%
SwapMostlyHits/*sync_test.DeepCopyMap-8 48.2µs ± 0%
SwapMostlyHits/*sync_test.RWMutexMap-8 190ns ± 0%
SwapMostlyHits/*sync.Map-8 28.3ns ± 0%
SwapMostlyMisses/*sync_test.DeepCopyMap-8 681ns ± 0%
SwapMostlyMisses/*sync_test.RWMutexMap-8 336ns ± 0%
SwapMostlyMisses/*sync.Map-8 523ns ± 0%
CompareAndSwapCollision/*sync_test.DeepCopyMap-8 3.99ns ± 0%
CompareAndSwapCollision/*sync_test.RWMutexMap-8 151ns ± 0%
CompareAndSwapCollision/*sync.Map-8 21.6ns ± 0%
CompareAndSwapNoExistingKey/*sync_test.DeepCopyMap-8 3.95ns ± 0%
CompareAndSwapNoExistingKey/*sync_test.RWMutexMap-8 126ns ± 0%
CompareAndSwapNoExistingKey/*sync.Map-8 6.11ns ± 0%
CompareAndSwapValueNotEqual/*sync_test.DeepCopyMap-8 2.15ns ± 0%
CompareAndSwapValueNotEqual/*sync_test.RWMutexMap-8 132ns ± 0%
CompareAndSwapValueNotEqual/*sync.Map-8 5.32ns ± 0%
CompareAndSwapMostlyHits/*sync_test.RWMutexMap-8 219ns ± 0%
CompareAndSwapMostlyHits/*sync.Map-8 27.1ns ± 0%
CompareAndSwapMostlyMisses/*sync_test.DeepCopyMap-8 13.0ns ± 0%
CompareAndSwapMostlyMisses/*sync_test.RWMutexMap-8 147ns ± 0%
CompareAndSwapMostlyMisses/*sync.Map-8 19.6ns ± 0%
CompareAndDeleteCollision/*sync_test.DeepCopyMap-8 2.23ns ± 0%
CompareAndDeleteCollision/*sync_test.RWMutexMap-8 131ns ± 0%
CompareAndDeleteCollision/*sync.Map-8 16.2ns ± 0%
CompareAndDeleteMostlyHits/*sync_test.RWMutexMap-8 367ns ± 0%
CompareAndDeleteMostlyHits/*sync.Map-8 33.1ns ± 0%
CompareAndDeleteMostlyMisses/*sync_test.DeepCopyMap-8 8.75ns ± 0%
CompareAndDeleteMostlyMisses/*sync_test.RWMutexMap-8 134ns ± 0%
CompareAndDeleteMostlyMisses/*sync.Map-8 10.9ns ± 0%
name alloc/op
SwapCollision/*sync_test.DeepCopyMap-8 336B ± 0%
SwapCollision/*sync_test.RWMutexMap-8 0.00B
SwapCollision/*sync.Map-8 16.0B ± 0%
SwapMostlyHits/*sync_test.DeepCopyMap-8 82.1kB ± 0%
SwapMostlyHits/*sync_test.RWMutexMap-8 12.0B ± 0%
SwapMostlyHits/*sync.Map-8 28.0B ± 0%
SwapMostlyMisses/*sync_test.DeepCopyMap-8 713B ± 0%
SwapMostlyMisses/*sync_test.RWMutexMap-8 23.0B ± 0%
SwapMostlyMisses/*sync.Map-8 129B ± 0%
CompareAndSwapCollision/*sync_test.DeepCopyMap-8 0.00B
CompareAndSwapCollision/*sync_test.RWMutexMap-8 0.00B
CompareAndSwapCollision/*sync.Map-8 3.00B ± 0%
CompareAndSwapNoExistingKey/*sync_test.DeepCopyMap-8 8.00B ± 0%
CompareAndSwapNoExistingKey/*sync_test.RWMutexMap-8 8.00B ± 0%
CompareAndSwapNoExistingKey/*sync.Map-8 8.00B ± 0%
CompareAndSwapValueNotEqual/*sync_test.DeepCopyMap-8 0.00B
CompareAndSwapValueNotEqual/*sync_test.RWMutexMap-8 0.00B
CompareAndSwapValueNotEqual/*sync.Map-8 0.00B
CompareAndSwapMostlyHits/*sync_test.RWMutexMap-8 18.0B ± 0%
CompareAndSwapMostlyHits/*sync.Map-8 33.0B ± 0%
CompareAndSwapMostlyMisses/*sync_test.DeepCopyMap-8 24.0B ± 0%
CompareAndSwapMostlyMisses/*sync_test.RWMutexMap-8 23.0B ± 0%
CompareAndSwapMostlyMisses/*sync.Map-8 23.0B ± 0%
CompareAndDeleteCollision/*sync_test.DeepCopyMap-8 0.00B
CompareAndDeleteCollision/*sync_test.RWMutexMap-8 0.00B
CompareAndDeleteCollision/*sync.Map-8 0.00B
CompareAndDeleteMostlyHits/*sync_test.RWMutexMap-8 23.0B ± 0%
CompareAndDeleteMostlyHits/*sync.Map-8 39.0B ± 0%
CompareAndDeleteMostlyMisses/*sync_test.DeepCopyMap-8 16.0B ± 0%
CompareAndDeleteMostlyMisses/*sync_test.RWMutexMap-8 15.0B ± 0%
CompareAndDeleteMostlyMisses/*sync.Map-8 15.0B ± 0%
name allocs/op
SwapCollision/*sync_test.DeepCopyMap-8 2.00 ± 0%
SwapCollision/*sync_test.RWMutexMap-8 0.00
SwapCollision/*sync.Map-8 1.00 ± 0%
SwapMostlyHits/*sync_test.DeepCopyMap-8 4.00 ± 0%
SwapMostlyHits/*sync_test.RWMutexMap-8 1.00 ± 0%
SwapMostlyHits/*sync.Map-8 2.00 ± 0%
SwapMostlyMisses/*sync_test.DeepCopyMap-8 6.00 ± 0%
SwapMostlyMisses/*sync_test.RWMutexMap-8 2.00 ± 0%
SwapMostlyMisses/*sync.Map-8 6.00 ± 0%
CompareAndSwapCollision/*sync_test.DeepCopyMap-8 0.00
CompareAndSwapCollision/*sync_test.RWMutexMap-8 0.00
CompareAndSwapCollision/*sync.Map-8 0.00
CompareAndSwapNoExistingKey/*sync_test.DeepCopyMap-8 1.00 ± 0%
CompareAndSwapNoExistingKey/*sync_test.RWMutexMap-8 0.00
CompareAndSwapNoExistingKey/*sync.Map-8 1.00 ± 0%
CompareAndSwapValueNotEqual/*sync_test.DeepCopyMap-8 0.00
CompareAndSwapValueNotEqual/*sync_test.RWMutexMap-8 0.00
CompareAndSwapValueNotEqual/*sync.Map-8 0.00
CompareAndSwapMostlyHits/*sync_test.RWMutexMap-8 2.00 ± 0%
CompareAndSwapMostlyHits/*sync.Map-8 3.00 ± 0%
CompareAndSwapMostlyMisses/*sync_test.DeepCopyMap-8 2.00 ± 0%
CompareAndSwapMostlyMisses/*sync_test.RWMutexMap-8 2.00 ± 0%
CompareAndSwapMostlyMisses/*sync.Map-8 2.00 ± 0%
CompareAndDeleteCollision/*sync_test.DeepCopyMap-8 0.00
CompareAndDeleteCollision/*sync_test.RWMutexMap-8 0.00
CompareAndDeleteCollision/*sync.Map-8 0.00
CompareAndDeleteMostlyHits/*sync_test.RWMutexMap-8 2.00 ± 0%
CompareAndDeleteMostlyHits/*sync.Map-8 3.00 ± 0%
CompareAndDeleteMostlyMisses/*sync_test.DeepCopyMap-8 2.00 ± 0%
CompareAndDeleteMostlyMisses/*sync_test.RWMutexMap-8 1.00 ± 0%
CompareAndDeleteMostlyMisses/*sync.Map-8 1.00 ± 0%
Fixes #51972
Change-Id: I469e71033592997832c3e8ebdad1b8950a70c99c
Reviewed-on: https://go-review.googlesource.com/c/go/+/399094
Run-TryBot: Changkun Ou <mail@changkun.de>
Reviewed-by: Joedian Reid <joedian@golang.org>
Auto-Submit: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
|
|
And then revert the bootstrap cmd directories and certain testdata.
And adjust tests as needed.
Not reverting the changes in std that are bootstrapped,
because some of those changes would appear in API docs,
and we want to use any consistently.
Instead, rewrite 'any' to 'interface{}' in cmd/dist for those directories
when preparing the bootstrap copy.
A few files changed as a result of running gofmt -w
not because of interface{} -> any but because they
hadn't been updated for the new //go:build lines.
Fixes #49884.
Change-Id: Ie8045cba995f65bd79c694ec77a1b3d1fe01bb09
Reviewed-on: https://go-review.googlesource.com/c/go/+/368254
Trust: Russ Cox <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
|
|
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>
|
|
The mainline sync.Map has allowed mutations within Range callbacks
since https://golang.org/cl/37342. The reference implementations need
to do the same.
This change integrates https://go-review.googlesource.com/c/42956/
from x/sync.
Change-Id: I6b58cf874bb31cd4f6fdb8bfa8278888ed617a5a
Reviewed-on: https://go-review.googlesource.com/42957
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
|
|
This is a direct port of the version from
commit a60ad46e0ed33d02e09bda439efaf9c9727dbc6c
(https://go-review.googlesource.com/c/37342/).
updates #17973
updates #18177
Change-Id: I63fa5ef6951b1edd39f84927d1181a4df9b15385
Reviewed-on: https://go-review.googlesource.com/36617
Reviewed-by: Russ Cox <rsc@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
|