public OneToOneSequencedBatchThroughputTest()
 {
     _ringBuffer = RingBuffer<ValueEvent>.CreateSingleProducer(ValueEvent.EventFactory, _bufferSize, new YieldingWaitStrategy());
     var sequenceBarrier = _ringBuffer.NewBarrier();
     _handler = new ValueAdditionEventHandler();
     _batchEventProcessor = new BatchEventProcessor<ValueEvent>(_ringBuffer, sequenceBarrier, _handler);
     _ringBuffer.AddGatingSequences(_batchEventProcessor.Sequence);
 }
示例#2
0
        public OneToOneSequencedBatchThroughputTest()
        {
            _ringBuffer = RingBuffer <ValueEvent> .CreateSingleProducer(ValueEvent.EventFactory, _bufferSize, new YieldingWaitStrategy());

            var sequenceBarrier = _ringBuffer.NewBarrier();

            _handler             = new ValueAdditionEventHandler();
            _batchEventProcessor = new BatchEventProcessor <ValueEvent>(_ringBuffer, sequenceBarrier, _handler);
            _ringBuffer.AddGatingSequences(_batchEventProcessor.Sequence);
        }
        public UniCast1P1CDisruptorPerfTest()
            : base(100 * Million)
        {
            _disruptor = new Disruptor<ValueEvent>(() => new ValueEvent(),BufferSize,TaskScheduler.Default, ProducerType.SINGLE,new YieldingWaitStrategy());                                                         

            _mru = new ManualResetEvent(false);
            _eventHandler = new ValueAdditionEventHandler(Iterations, _mru);
            _disruptor.HandleEventsWith(_eventHandler);
            _ringBuffer = _disruptor.GetRingBuffer;
        }
 public UniCast1P1CDisruptorWithAffinityPerfTest()
     : base(100 * Million)
 {
     _scheduler    = new RoundRobinThreadAffinedTaskScheduler(2);
     _disruptor    = new Disruptor <ValueEvent>(() => new ValueEvent(), BufferSize, _scheduler, ProducerType.SINGLE, new YieldingWaitStrategy());
     _mru          = new ManualResetEvent(false);
     _eventHandler = new ValueAdditionEventHandler(Iterations, _mru);
     _disruptor.HandleEventsWith(_eventHandler);
     _ringBuffer = _disruptor.GetRingBuffer;
 }
        public UniCast1P1CBatchDisruptorPerfTest()
            : base(100 * Million)
        {
            _disruptor = new Disruptor <ValueEvent>(() => new ValueEvent(), BufferSize, TaskScheduler.Default, ProducerType.SINGLE, new YieldingWaitStrategy());

            _mru          = new ManualResetEvent(false);
            _eventHandler = new ValueAdditionEventHandler(Iterations, _mru);
            _disruptor.handleEventsWith(_eventHandler);
            _ringBuffer = _disruptor.getRingBuffer();
        }
        public UniCast1P1CBatchDisruptorWithAffinityPerfTest()
            : base(100 * Million)
        {
            _scheduler = new RoundRobinThreadAffinedTaskScheduler(2);

            _disruptor = new Disruptor<ValueEvent>(() => new ValueEvent(), BufferSize, _scheduler, ProducerType.SINGLE, new YieldingWaitStrategy());
            _mru = new ManualResetEvent(false);
            _eventHandler = new ValueAdditionEventHandler(Iterations, _mru);
            _disruptor.handleEventsWith(_eventHandler);
            _ringBuffer = _disruptor.getRingBuffer();
        }
 public UniCast1P1CBatchDisruptorPerfTest()
     : base(100 * Million)
 {
     _disruptor = new Disruptor<ValueEvent>(()=>new ValueEvent(),
                                            new SingleThreadedClaimStrategy(BufferSize),
                                            new YieldingWaitStrategy());
     _mru = new ManualResetEvent(false);
     _eventHandler = new ValueAdditionEventHandler(Iterations, _mru);
     _disruptor.HandleEventsWith(_eventHandler);
     _ringBuffer = _disruptor.RingBuffer;
 }
 public UniCast1P1CBatchDisruptorPerfTest()
     : base(100 * Million)
 {
     _disruptor = new Disruptor <ValueEvent>(() => new ValueEvent(),
                                             new SingleThreadedClaimStrategy(BufferSize),
                                             new YieldingWaitStrategy());
     _mru          = new ManualResetEvent(false);
     _eventHandler = new ValueAdditionEventHandler(Iterations, _mru);
     _disruptor.HandleEventsWith(_eventHandler);
     _ringBuffer = _disruptor.RingBuffer;
 }
        public UniCast1P1CDisruptorWithAffinityPerfTest()
            : base(100 * Million)
        {
            _scheduler = new RoundRobinThreadAffinedTaskScheduler(2);
            _disruptor = new Dsl.Disruptor<ValueEvent>(() => new ValueEvent(),
                                                          new SingleThreadedClaimStrategy(BufferSize),
                                                          new YieldingWaitStrategy(),
                                                          _scheduler);

            _mru = new ManualResetEvent(false);
            _eventHandler = new ValueAdditionEventHandler(Iterations, _mru);
            _disruptor.HandleEventsWith(_eventHandler);
            _ringBuffer = _disruptor.RingBuffer;
        }
        public UniCast1P1CDisruptorWithAffinityPerfTest()
            : base(100 * Million)
        {
            _scheduler = new RoundRobinThreadAffinedTaskScheduler(2);
            _disruptor = new Dsl.Disruptor <ValueEvent>(() => new ValueEvent(),
                                                        new SingleThreadedClaimStrategy(BufferSize),
                                                        new YieldingWaitStrategy(),
                                                        _scheduler);

            _mru          = new ManualResetEvent(false);
            _eventHandler = new ValueAdditionEventHandler(Iterations, _mru);
            _disruptor.HandleEventsWith(_eventHandler);
            _ringBuffer = _disruptor.RingBuffer;
        }
        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 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);
            }
        }
示例#14
0
        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);
            }
        }