public OneToOneSequencedBatchValueThroughputTest() { _ringBuffer = ValueRingBuffer <PerfValueEvent> .CreateSingleProducer(PerfValueEvent.EventFactory, _bufferSize, new YieldingWaitStrategy()); var sequenceBarrier = _ringBuffer.NewBarrier(); _handler = new AdditionEventHandler(); _batchEventProcessor = BatchEventProcessorFactory.Create(_ringBuffer, sequenceBarrier, _handler); _ringBuffer.AddGatingSequences(_batchEventProcessor.Sequence); }
public OneToOneSequencedBatchUnmanagedThroughputTest() { _memory = UnmanagedRingBufferMemory.Allocate(_bufferSize, PerfValueEvent.Size); _ringBuffer = new UnmanagedRingBuffer <PerfValueEvent>(_memory, ProducerType.Single, new YieldingWaitStrategy()); var sequenceBarrier = _ringBuffer.NewBarrier(); _handler = new AdditionEventHandler(); _batchEventProcessor = BatchEventProcessorFactory.Create(_ringBuffer, sequenceBarrier, _handler); _ringBuffer.AddGatingSequences(_batchEventProcessor.Sequence); }
public PingPongSequencedValueLatencyTest() { _pingBuffer = ValueRingBuffer <PerfValueEvent> .CreateSingleProducer(PerfValueEvent.EventFactory, _bufferSize, new BlockingWaitStrategy()); _pongBuffer = ValueRingBuffer <PerfValueEvent> .CreateSingleProducer(PerfValueEvent.EventFactory, _bufferSize, new BlockingWaitStrategy()); _pingBarrier = _pingBuffer.NewBarrier(); _pongBarrier = _pongBuffer.NewBarrier(); _pinger = new Pinger(_pingBuffer, _iterations, _pauseNanos); _ponger = new Ponger(_pongBuffer); _pingProcessor = BatchEventProcessorFactory.Create(_pongBuffer, _pongBarrier, _pinger); _pongProcessor = BatchEventProcessorFactory.Create(_pingBuffer, _pingBarrier, _ponger); _pingBuffer.AddGatingSequences(_pongProcessor.Sequence); _pongBuffer.AddGatingSequences(_pingProcessor.Sequence); }
public void Setup() { _processor = BatchEventProcessorFactory.Create(_ringBuffer, _ringBuffer.NewBarrier(), new XEventHandler(() => _processor.Halt())); _processorRef = BatchEventProcessorFactory.Create(_ringBuffer, _ringBuffer.NewBarrier(), new XEventHandler(() => _processorRef.Halt()), typeof(ValueBatchEventProcessorRef <, , , ,>)); }