public OneToThreeDiamondSequencedThroughputTest() { var sequenceBarrier = _ringBuffer.NewBarrier(); var fizzHandler = new FizzBuzzEventHandler(FizzBuzzStep.Fizz); _batchProcessorFizz = new BatchEventProcessor<FizzBuzzEvent>(_ringBuffer, sequenceBarrier, fizzHandler); var buzzHandler = new FizzBuzzEventHandler(FizzBuzzStep.Buzz); _batchProcessorBuzz = new BatchEventProcessor<FizzBuzzEvent>(_ringBuffer, sequenceBarrier, buzzHandler); var sequenceBarrierFizzBuzz = _ringBuffer.NewBarrier(_batchProcessorFizz.Sequence, _batchProcessorBuzz.Sequence); _fizzBuzzHandler = new FizzBuzzEventHandler(FizzBuzzStep.FizzBuzz); _batchProcessorFizzBuzz = new BatchEventProcessor<FizzBuzzEvent>(_ringBuffer, sequenceBarrierFizzBuzz, _fizzBuzzHandler); var temp = 0L; for (long i = 0; i < _iterations; i++) { var fizz = 0 == (i % 3L); var buzz = 0 == (i % 5L); if (fizz && buzz) { ++temp; } } _expectedResult = temp; _ringBuffer.AddGatingSequences(_batchProcessorFizzBuzz.Sequence); }
public OneToThreeDiamondSequencedThroughputTest() { var sequenceBarrier = _ringBuffer.NewBarrier(); var fizzHandler = new FizzBuzzEventHandler(FizzBuzzStep.Fizz); _batchProcessorFizz = BatchEventProcessorFactory.Create(_ringBuffer, sequenceBarrier, fizzHandler); var buzzHandler = new FizzBuzzEventHandler(FizzBuzzStep.Buzz); _batchProcessorBuzz = BatchEventProcessorFactory.Create(_ringBuffer, sequenceBarrier, buzzHandler); var sequenceBarrierFizzBuzz = _ringBuffer.NewBarrier(_batchProcessorFizz.Sequence, _batchProcessorBuzz.Sequence); _fizzBuzzHandler = new FizzBuzzEventHandler(FizzBuzzStep.FizzBuzz); _batchProcessorFizzBuzz = BatchEventProcessorFactory.Create(_ringBuffer, sequenceBarrierFizzBuzz, _fizzBuzzHandler); var temp = 0L; for (long i = 0; i < _iterations; i++) { var fizz = 0 == (i % 3L); var buzz = 0 == (i % 5L); if (fizz && buzz) { ++temp; } } _expectedResult = temp; _ringBuffer.AddGatingSequences(_batchProcessorFizzBuzz.Sequence); }
//ÁâÐÎģʽ public DiamondPath1P3CDisruptorPerfTest() : base(100 * Million) { _disruptor = new Disruptor<FizzBuzzEvent>(() => new FizzBuzzEvent(), 1024*8, TaskScheduler.Default, ProducerType.SINGLE,new BlockingWaitStrategy()); _mru = new ManualResetEvent(false); _fizzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.Fizz, Iterations, _mru); _buzzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.Buzz, Iterations, _mru); _fizzBuzzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.FizzBuzz, Iterations, _mru); _disruptor.HandleEventsWith(_fizzEventHandler, _buzzEventHandler) .Then(_fizzBuzzEventHandler); _ringBuffer = _disruptor.GetRingBuffer; }
//ÁâÐÎģʽ public DiamondPath1P3CDisruptorPerfTest() : base(100 * Million) { _disruptor = new Disruptor <FizzBuzzEvent>(() => new FizzBuzzEvent(), 1024 * 8, TaskScheduler.Default, ProducerType.SINGLE, new BlockingWaitStrategy()); _mru = new ManualResetEvent(false); _fizzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.Fizz, Iterations, _mru); _buzzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.Buzz, Iterations, _mru); _fizzBuzzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.FizzBuzz, Iterations, _mru); _disruptor.HandleEventsWith(_fizzEventHandler, _buzzEventHandler) .Then(_fizzBuzzEventHandler); _ringBuffer = _disruptor.GetRingBuffer; }
public DiamondPath1P3CDisruptorPerfTest() : base(100 * Million) { _disruptor = new Disruptor<FizzBuzzEvent>(() => new FizzBuzzEvent(), new SingleThreadedClaimStrategy(Size), new YieldingWaitStrategy()); _mru = new ManualResetEvent(false); _fizzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.Fizz, Iterations, _mru); _buzzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.Buzz, Iterations, _mru); _fizzBuzzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.FizzBuzz, Iterations, _mru); _disruptor.HandleEventsWith(_fizzEventHandler, _buzzEventHandler) .Then(_fizzBuzzEventHandler); _ringBuffer = _disruptor.RingBuffer; }
public DiamondPath1P3CDisruptorPerfTest() : base(100 * Million) { _disruptor = new Disruptor <FizzBuzzEvent>(() => new FizzBuzzEvent(), new SingleThreadedClaimStrategy(Size), new YieldingWaitStrategy()); _mru = new ManualResetEvent(false); _fizzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.Fizz, Iterations, _mru); _buzzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.Buzz, Iterations, _mru); _fizzBuzzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.FizzBuzz, Iterations, _mru); _disruptor.HandleEventsWith(_fizzEventHandler, _buzzEventHandler) .Then(_fizzBuzzEventHandler); _ringBuffer = _disruptor.RingBuffer; }
public DiamondPath1P3CDisruptorWithAffinityPerfTest() : base(100 * Million) { _scheduler = new RoundRobinThreadAffinedTaskScheduler(4); _disruptor = new Disruptor<FizzBuzzEvent>(() => new FizzBuzzEvent(), Size, _scheduler); _mru = new ManualResetEvent(false); _fizzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.Fizz, Iterations, _mru); _buzzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.Buzz, Iterations, _mru); _fizzBuzzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.FizzBuzz, Iterations, _mru); _disruptor.HandleEventsWith(_fizzEventHandler, _buzzEventHandler) .Then(_fizzBuzzEventHandler); _ringBuffer = _disruptor.GetRingBuffer; }
public DiamondPath1P3CDisruptorWithAffinityPerfTest() : base(100 * Million) { _scheduler = new RoundRobinThreadAffinedTaskScheduler(4); _disruptor = new Disruptor <FizzBuzzEvent>(() => new FizzBuzzEvent(), Size, _scheduler); _mru = new ManualResetEvent(false); _fizzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.Fizz, Iterations, _mru); _buzzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.Buzz, Iterations, _mru); _fizzBuzzEventHandler = new FizzBuzzEventHandler(FizzBuzzStep.FizzBuzz, Iterations, _mru); _disruptor.HandleEventsWith(_fizzEventHandler, _buzzEventHandler) .Then(_fizzBuzzEventHandler); _ringBuffer = _disruptor.GetRingBuffer; }