From 85cd6aa7c7917f0371fbd2c8b4fc566a978054af Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Sat, 22 Jun 2019 17:25:05 +0200 Subject: [PATCH] Add benchmarks for subscribe and emitter License: MIT Signed-off-by: Jakub Sztandera --- basic_test.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/basic_test.go b/basic_test.go index b6b74cf..deddc6b 100644 --- a/basic_test.go +++ b/basic_test.go @@ -449,3 +449,36 @@ func benchMany(bc benchCase) func(*testing.B) { wait.Wait() } } + +var div = 100 + +func BenchmarkSubscribe(b *testing.B) { + b.ReportAllocs() + for i := 0; i < b.N/div; i++ { + bus := NewBus() + for j := 0; j < div; j++ { + bus.Subscribe(new(EventA)) + } + } +} + +func BenchmarkEmitter(b *testing.B) { + b.ReportAllocs() + for i := 0; i < b.N/div; i++ { + bus := NewBus() + for j := 0; j < div; j++ { + bus.Emitter(new(EventA)) + } + } +} + +func BenchmarkSubscribeAndEmitter(b *testing.B) { + b.ReportAllocs() + for i := 0; i < b.N/div; i++ { + bus := NewBus() + for j := 0; j < div; j++ { + bus.Subscribe(new(EventA)) + bus.Emitter(new(EventA)) + } + } +}