]> Cypherpunks repositories - gostls13.git/commitdiff
slices: add benchmark for IsSorted vs. IntsAreSorted
authorEli Bendersky <eliben@golang.org>
Mon, 12 Jun 2023 16:05:33 +0000 (09:05 -0700)
committerEli Bendersky <eliben@google.com>
Tue, 13 Jun 2023 12:26:08 +0000 (12:26 +0000)
We'd like to mention in a comment that users should prefer
slices.IsSorted over sort.IntsAreSorted and similar
functions. Create a benchmark that shows this.

goos: linux
goarch: amd64
pkg: slices
cpu: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
BenchmarkIntsAreSorted-8                  6031     198315 ns/op
BenchmarkIsSorted-8                      26580      45801 ns/op

Change-Id: I4f14fafd799ecec35c8a5215b74994e972103061
Reviewed-on: https://go-review.googlesource.com/c/go/+/502556
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Eli Bendersky‎ <eliben@golang.org>
Reviewed-by: Eli Bendersky <eliben@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

src/slices/sort_benchmark_test.go

index 88eb2385de6cecf2d92fd3b13fb7cb86f85fb68b..edf29994cf3443b3772179bf11795a57f5828256 100644 (file)
@@ -77,6 +77,24 @@ func BenchmarkSlicesSortInts_Reversed(b *testing.B) {
        }
 }
 
+func BenchmarkIntsAreSorted(b *testing.B) {
+       for i := 0; i < b.N; i++ {
+               b.StopTimer()
+               ints := makeSortedInts(N)
+               b.StartTimer()
+               sort.IntsAreSorted(ints)
+       }
+}
+
+func BenchmarkIsSorted(b *testing.B) {
+       for i := 0; i < b.N; i++ {
+               b.StopTimer()
+               ints := makeSortedInts(N)
+               b.StartTimer()
+               IsSorted(ints)
+       }
+}
+
 // Since we're benchmarking these sorts against each other, make sure that they
 // generate similar results.
 func TestIntSorts(t *testing.T) {