blob: c6ac3d434d297578966c5f82ac09c79862a37a37 [file] [log] [blame]
package disruptor
import "testing"
func BenchmarkSingleProducerSequencerPublish(b *testing.B) {
sequencer := NewSingleProducerSequencer(NewSequence(), 1024, Barrier{})
iterations := int64(b.N)
b.ReportAllocs()
b.ResetTimer()
for i := int64(0); i < iterations; i++ {
sequencer.Publish(i)
}
}
func BenchmarkSingleProducerSequencerNext(b *testing.B) {
consumerSequence := NewSequence()
publisherSequence := NewSequence()
consumerBarrier := NewBarrier(consumerSequence)
sequencer := NewSingleProducerSequencer(publisherSequence, 1024, consumerBarrier)
iterations := int64(b.N)
b.ReportAllocs()
b.ResetTimer()
for i := int64(0); i < iterations; i++ {
claimed := sequencer.Next(1)
consumerSequence.Store(claimed)
}
}
func BenchmarkSingleProducerSequencerNextWrapPoint(b *testing.B) {
consumerSequence := NewSequence()
publisherSequence := NewSequence()
consumerBarrier := NewBarrier(consumerSequence)
sequencer := NewSingleProducerSequencer(publisherSequence, 1024, consumerBarrier)
iterations := int64(b.N)
b.ReportAllocs()
b.ResetTimer()
consumerSequence.Store(MaxSequenceValue)
for i := int64(0); i < iterations; i++ {
sequencer.Next(1)
}
}