tpl/collections: Add BenchmarkWhereOps

```
BenchmarkWhereOps/eq-10 	    8702	    120410 ns/op	   52280 B/op	    2515 allocs/op
BenchmarkWhereOps/ne-10 	    9829	    120759 ns/op	   52280 B/op	    2515 allocs/op
BenchmarkWhereOps/like-10           6754	    176377 ns/op	   52917 B/op	    2515 allocs/op
```
This commit is contained in:
Bjørn Erik Pedersen 2023-07-28 10:06:16 +02:00
parent f4598a0986
commit ef6e813ca8
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F

View file

@ -17,6 +17,7 @@ import (
"context"
"fmt"
"html/template"
"math/rand"
"reflect"
"strings"
"testing"
@ -859,3 +860,46 @@ func TestEvaluateSubElem(t *testing.T) {
}
}
}
func BenchmarkWhereOps(b *testing.B) {
ns := newNs()
var seq []map[string]string
ctx := context.Background()
for i := 0; i < 500; i++ {
seq = append(seq, map[string]string{"foo": "bar"})
}
for i := 0; i < 500; i++ {
seq = append(seq, map[string]string{"foo": "baz"})
}
// Shuffle the sequence.
for i := range seq {
j := rand.Intn(i + 1)
seq[i], seq[j] = seq[j], seq[i]
}
//results, err = ns.Where(context.Background(), test.seq, test.key, test.op, test.match)
runOps := func(b *testing.B, op, match string) {
_, err := ns.Where(ctx, seq, "foo", op, match)
if err != nil {
b.Fatal(err)
}
}
b.Run("eq", func(b *testing.B) {
for i := 0; i < b.N; i++ {
runOps(b, "eq", "bar")
}
})
b.Run("ne", func(b *testing.B) {
for i := 0; i < b.N; i++ {
runOps(b, "ne", "baz")
}
})
b.Run("like", func(b *testing.B) {
for i := 0; i < b.N; i++ {
runOps(b, "like", "^bar")
}
})
}