blob: 51402d686f5e992e597c3dfb8b78a168cf15e8ef [file] [log] [blame]
package main
import "testing"
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()
consumerSequence.Store(MaxSequenceValue)
for i := int64(0); i < iterations; i++ {
sequencer.Next(1)
// claimed := sequencer.Next(1)
// consumerSequence.Store(claimed)
}
}
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)
}
}