public Sequencer3P1CDisruptorPerfTest() : base(20 * Million) { _disruptor = new Disruptor <ValueEvent>(() => new ValueEvent(), Size, TaskScheduler.Default, ProducerType.MULTI, new YieldingWaitStrategy()); _mru = new ManualResetEvent(false); _eventHandler = new ValueAdditionEventHandler(Iterations * NumProducers, _mru); _disruptor.HandleEventsWith(_eventHandler); _valueProducers = new ValueProducer[NumProducers]; _ringBuffer = _disruptor.GetRingBuffer; for (int i = 0; i < NumProducers; i++) { _valueProducers[i] = new ValueProducer(_testStartBarrier, _ringBuffer, Iterations); } }
public Sequencer3P1CDisruptorWithAffinityPerfTest() : base(20 * Million) { _scheduler = new RoundRobinThreadAffinedTaskScheduler(4); _disruptor = new Disruptor <ValueEvent>(() => new ValueEvent(), new MultiThreadedLowContentionClaimStrategy(Size), new YieldingWaitStrategy(), _scheduler); _mru = new ManualResetEvent(false); _eventHandler = new ValueAdditionEventHandler(Iterations * NumProducers, _mru); _disruptor.HandleEventsWith(_eventHandler); _valueProducers = new ValueProducer[NumProducers]; _ringBuffer = _disruptor.RingBuffer; for (int i = 0; i < NumProducers; i++) { _valueProducers[i] = new ValueProducer(_testStartBarrier, _ringBuffer, Iterations); } }