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))
+		}
+	}
+}