summaryrefslogtreecommitdiff
path: root/sort/bench.go
diff options
context:
space:
mode:
Diffstat (limited to 'sort/bench.go')
-rw-r--r--sort/bench.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/sort/bench.go b/sort/bench.go
new file mode 100644
index 0000000..094debd
--- /dev/null
+++ b/sort/bench.go
@@ -0,0 +1,21 @@
+package sort
+
+import (
+ "algorithms/ds"
+ "fmt"
+ "testing"
+)
+
+// Avoid compiler optimizations
+var benchResult []ds.Comparer
+
+func benchmark(name string, length int, sort func([]ds.Comparer) []ds.Comparer, b *testing.B) {
+ cb := func(b *testing.B) {
+ a := ds.RandomIntegers(length, length)
+ b.ResetTimer()
+ for i := 0; i < b.N; i++ {
+ benchResult = sort(a)
+ }
+ }
+ b.Run(fmt.Sprintf("Benchmark%s%d", name, length), cb)
+}