| package disruptor |
| |
| import "testing" |
| |
| func BenchmarkReader(b *testing.B) { |
| writerCursor := NewCursor() |
| readerCursor := NewCursor() |
| writerBarrier := NewBarrier(writerCursor) |
| |
| reader := NewReader(writerBarrier, &testHandler{}, writerCursor, readerCursor) |
| iterations := int64(b.N) |
| b.ReportAllocs() |
| b.ResetTimer() |
| |
| writerCursor.Store(1) |
| |
| for i := int64(0); i < iterations; i++ { |
| readerCursor.Store(0) |
| sequence := reader.Receive() |
| reader.Commit(sequence) |
| } |
| } |
| |
| type testHandler struct{} |
| |
| func (this testHandler) Consume(sequence, remaining int64) {} |