@State(Scope.Thread) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @Warmup(iterations = 10, time = 1, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 10, time = 1, timeUnit = TimeUnit.SECONDS) public class QueueOfferPoll { private static final int BURST_SIZE = Integer.getInteger("burst.size", 1); private static final Integer DUMMY_MESSAGE = 1; private final Queue<Integer> q = SPSCQueueFactory.createQueue(); @GenerateMicroBenchmark public int offerAndPoll() { for (int i = 0; i < BURST_SIZE; i++) { q.offer(DUMMY_MESSAGE); } Integer result = null; for (int i = 0; i < BURST_SIZE; i++) { result = q.poll(); } return result.intValue(); } }