]> Cypherpunks repositories - gostls13.git/commit
runtime: avoid memclr call for keys in mapdelete_fast
authorMartin Möhrmann <moehrmann@google.com>
Sun, 3 May 2020 14:26:05 +0000 (16:26 +0200)
committerMartin Möhrmann <moehrmann@google.com>
Mon, 17 Aug 2020 04:56:56 +0000 (04:56 +0000)
commitf979d072d339a24e4938d46588c153587d61af19
treea846d2e135e54d7ab3d4e59ed948a17f72a008e2
parent99f179f55a66f35dc7861fa411b42ed61bd0df31
runtime: avoid memclr call for keys in mapdelete_fast

Replace memclrHasPointers calls for keys in mapdelete_fast*
functions with direct writes since the key sizes are known
at compile time.

name                     old time/op  new time/op  delta
MapDelete/Pointer/100    33.7ns ± 1%  23.7ns ± 2%  -29.68%  (p=0.000 n=7+9)
MapDelete/Pointer/1000   41.6ns ± 5%  34.9ns ± 4%  -16.01%  (p=0.000 n=9+10)
MapDelete/Pointer/10000  45.6ns ± 1%  38.2ns ± 2%  -16.34%  (p=0.000 n=8+10)

Change-Id: Icaac43b520b93c2cf9fd192b822fae7203a7bbf7
Reviewed-on: https://go-review.googlesource.com/c/go/+/231737
Run-TryBot: Martin Möhrmann <moehrmann@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
src/runtime/map_fast32.go
src/runtime/map_fast64.go
src/runtime/map_test.go