From: Michael Pratt Date: Mon, 12 Aug 2024 20:38:58 +0000 (-0400) Subject: internal/runtime/maps: speed up modulo X-Git-Tag: go1.24rc1~567 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=bb46b754bebb0e820d74fd9eb02635afbdf5a3bd;p=gostls13.git internal/runtime/maps: speed up modulo For #54766. Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest-swissmap Change-Id: Ic47721e101f6fee650e6825a5a241fcd12fa0009 Reviewed-on: https://go-review.googlesource.com/c/go/+/611185 LUCI-TryBot-Result: Go LUCI Auto-Submit: Michael Pratt Reviewed-by: Michael Knyszek --- diff --git a/src/internal/runtime/maps/table.go b/src/internal/runtime/maps/table.go index 60f4263100..232c077db3 100644 --- a/src/internal/runtime/maps/table.go +++ b/src/internal/runtime/maps/table.go @@ -571,7 +571,7 @@ func (it *Iter) Next() { // // We could avoid most of these lookups if we left a flag // behind on the old table to denote that it is stale. - dirIdx := int((uint64(it.dirIdx) + it.dirOffset) % uint64(len(it.m.directory))) + dirIdx := int((uint64(it.dirIdx) + it.dirOffset) & uint64(len(it.m.directory)-1)) newTab := it.m.directory[dirIdx] if it.tab == nil { if newTab.index != dirIdx {