mirror of https://github.com/golang/go.git
Using `for i, v := range` loops causes extra copies.
Try to get rid of as much copies as possible.
goos: windows
goarch: amd64
pkg: slices
cpu: AMD Ryzen Threadripper 2950X 16-Core Processor
│ old.txt~ │ new.txt~ │
│ sec/op │ sec/op vs base │
EqualFunc_Large-32 1.077m ± 1% 1.072m ± 1% ~ (p=0.631 n=10)
Index_Large-32 346.329µ ± 1% 6.510µ ± 24% -98.12% (p=0.000 n=10)
IndexFunc_Large-32 502.9µ ± 0% 381.2µ ± 1% -24.21% (p=0.000 n=10)
Compact_Large-32 409.5µ ± 1% 145.2µ ± 9% -64.54% (p=0.000 n=10)
CompactFunc_Large-32 693.5µ ± 1% 663.1µ ± 3% -4.39% (p=0.000 n=10)
geomean 556.3µ 191.3µ -65.61%
Change-Id: I36a2f2172cf30d97a5aa6f8d7cf6981d67daec62
Reviewed-on: https://go-review.googlesource.com/c/go/+/486235
Run-TryBot: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
|
||
|---|---|---|
| .. | ||
| slices.go | ||
| slices_test.go | ||