diff options
| author | Paul Buetow <git@mx.buetow.org> | 2020-11-10 21:25:54 +0000 |
|---|---|---|
| committer | Paul Buetow <git@mx.buetow.org> | 2020-11-10 21:25:54 +0000 |
| commit | 1db60ee0c7c7a6d8a5247bbca775c134645b771c (patch) | |
| tree | 38cfd901f37c7b36f826b97fd7f708b0ee5d26e7 | |
| parent | 24c2952ab16680383864625c8cc8cd73bfd94849 (diff) | |
Add set benchmarking
| -rw-r--r-- | set/set_test.go | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/set/set_test.go b/set/set_test.go index cd44e24..dac258a 100644 --- a/set/set_test.go +++ b/set/set_test.go @@ -9,7 +9,10 @@ import ( const factor int = 10 const minLength int = 1 -const maxLength int = 10 +const maxLength int = 10000 + +// Store results here to avoid compiler optimizations +var benchResult int func TestElementary(t *testing.T) { s := NewElementary() @@ -44,3 +47,31 @@ func test(s Set, l int, t *testing.T) { } t.Run(fmt.Sprintf("%d", l), cb) } + +func BenchmarkElementary(t *testing.B) { + s := NewElementary() + for i := minLength; i <= maxLength; i *= factor { + benchmark(s, i, t) + } +} + +func BenchmarkBST(t *testing.B) { + s := NewBST() + for i := minLength; i <= maxLength; i *= factor { + benchmark(s, i, t) + } +} + +func benchmark(s Set, l int, b *testing.B) { + list := ds.NewRandomArrayList(l, -1) + + b.Run(fmt.Sprintf("random(%d)", l), func(b *testing.B) { + b.ResetTimer() + for i, a := range list { + s.Set(a, i) + } + for _, a := range list { + benchResult, _ = s.Get(a) + } + }) +} |
