summaryrefslogtreecommitdiffstats
path: root/tpl
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-07-28 10:06:16 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-07-28 10:08:13 +0200
commitef6e813ca8e185bfb9c629e76380647394cd296f (patch)
tree5f55f8acf208b411cee04dd7224e992bc2a71116 /tpl
parentf4598a09864bee2689a7630dda83a71a9b9cf55b (diff)
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 ```
Diffstat (limited to 'tpl')
-rw-r--r--tpl/collections/where_test.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/tpl/collections/where_test.go b/tpl/collections/where_test.go
index 1b787daa2..08d8963c5 100644
--- a/tpl/collections/where_test.go
+++ b/tpl/collections/where_test.go
@@ -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")
+ }
+ })
+
+}