(b *testing.B)
| 99 | } |
| 100 | |
| 101 | func BenchmarkBroadcast(b *testing.B) { |
| 102 | benchmarks := []struct { |
| 103 | name string |
| 104 | usePrepared bool |
| 105 | compression bool |
| 106 | }{ |
| 107 | {"NoCompression", false, false}, |
| 108 | {"Compression", false, true}, |
| 109 | {"NoCompressionPrepared", true, false}, |
| 110 | {"CompressionPrepared", true, true}, |
| 111 | } |
| 112 | payload := textMessages(1)[0] |
| 113 | for _, bm := range benchmarks { |
| 114 | b.Run(bm.name, func(b *testing.B) { |
| 115 | bench := newBroadcastBench(bm.usePrepared, bm.compression) |
| 116 | defer bench.close() |
| 117 | b.ResetTimer() |
| 118 | for i := 0; i < b.N; i++ { |
| 119 | message := &broadcastMessage{ |
| 120 | payload: payload, |
| 121 | } |
| 122 | if bench.usePrepared { |
| 123 | pm, _ := NewPreparedMessage(TextMessage, message.payload) |
| 124 | message.prepared = pm |
| 125 | } |
| 126 | bench.broadcastOnce(message) |
| 127 | } |
| 128 | b.ReportAllocs() |
| 129 | }) |
| 130 | } |
| 131 | } |
nothing calls this directly
no test coverage detected