...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package scheduler_test
16
17 import (
18 "fmt"
19 "testing"
20
21 "cloud.google.com/go/pubsub/internal/scheduler"
22 )
23
24 const recSchedulerWorkers = 100
25
26 func BenchmarkReceive_SingleKey(b *testing.B) {
27 wait := make(chan struct{}, b.N)
28 ps := scheduler.NewReceiveScheduler(recSchedulerWorkers)
29 go func() {
30 for i := 0; i < b.N; i++ {
31 if err := ps.Add("some-key", fmt.Sprintf("item_%d", i), func(interface{}) {
32 wait <- struct{}{}
33 }); err != nil {
34 b.Error(err)
35 }
36 }
37 }()
38 for j := 0; j < b.N; j++ {
39 <-wait
40 }
41 }
42
43 func BenchmarkReceive_Unkeyed(b *testing.B) {
44 wait := make(chan struct{}, b.N)
45 ps := scheduler.NewReceiveScheduler(recSchedulerWorkers)
46 go func() {
47 for i := 0; i < b.N; i++ {
48 if err := ps.Add("", fmt.Sprintf("item_%d", i), func(interface{}) {
49 wait <- struct{}{}
50 }); err != nil {
51 b.Error(err)
52 }
53 }
54 }()
55 for j := 0; j < b.N; j++ {
56 <-wait
57 }
58 }
59
View as plain text