private static void AddObservations(Histogram histogram, params long[] observations) { foreach (var observation in observations) { histogram.AddObservation(observation); } }
public void Run() { for (var i = 0; i < _iterations; i++) { try { switch (_functionStep) { case FunctionStep.One: case FunctionStep.Two: { _outputQueue.Add(_inputQueue.Take()); break; } case FunctionStep.Three: { var value = _inputQueue.Take(); var duration = (Stopwatch.GetTimestamp() - value) * _ticksToNanos; duration /= 3; duration -= _nanoTimeCost; _histogram.AddObservation((long)duration); break; } } } catch (Exception) { break; } } _done = true; }
public void Run() { running.Data = true; while (running.Data) { try { switch (functionStep) { case FunctionStep.ONE: case FunctionStep.TWO: { outputQueue.Add(inputQueue.Take()); break; } case FunctionStep.THREE: { long value = inputQueue.Take(); long duration = stopwatch.GetElapsedNanoSeconds() - value; duration /= 3; duration -= nanoTimeCost; histogram.AddObservation(duration); break; } } sequence.Data++; } catch (ThreadInterruptedException) { break; } } }
private void AddObservations(Histogram histogram, params long[] observations) { for (int i = 0, size = observations.Length; i < size; i++) { histogram.AddObservation(observations[i]); } }
public void ShouldGetFourNinesUpperBound() { var intervals = new long[] { 1, 10, 100, 1000, 10000 }; var histogram = new Histogram(intervals); for (long i = 1; i < 102; i++) { histogram.AddObservation(i); } Assert.AreEqual(1000L, histogram.FourNinesUpperBound); }
public void ShouldCorrectMeanForSkewInTopAndBottomPopulatedIntervals() { var intervals = new long[] { 100, 110, 120, 130, 140, 150, 1000, 10000 }; var histogram = new Histogram(intervals); for (long i = 100; i < 152; i++) { histogram.AddObservation(i); } Assert.AreEqual(125.02d, histogram.Mean); }
public void ShouldGetTwoNinesUpperBound() { long[] intervals = new long[] { 1, 10, 100, 1000, 10000 }; Histogram histogram2 = new Histogram(intervals); for (long i = 1; i < 101; i++) { histogram2.AddObservation(i); } Assert.AreEqual(100L, histogram2.GetTwoNinesUpperBound()); }
public void ShouldCorrectMeanForSkewInTopAndBottomPopulatedIntervals() { long[] intervals = new long[] { 100, 110, 120, 130, 140, 150, 1000, 10000 }; Histogram histogram2 = new Histogram(intervals); for (long i = 100; i < 152; i++) { histogram2.AddObservation(i); } Assert.AreEqual(125.01923076923076923076923077m, histogram2.CalculateMean()); }
public void OnAvailable(ValueEntry entry) { switch (functionStep) { case FunctionStep.ONE: case FunctionStep.TWO: break; case FunctionStep.THREE: long duration = stopwatch.GetElapsedNanoSeconds() - entry.Value; duration /= 3; duration -= stopwatchTimeCostNs; histogram.AddObservation(duration); break; } }
public void OnEvent(ValueEvent @event, long sequence, bool endOfBatch) { var t1 = Stopwatch.GetTimestamp(); histogram.AddObservation(t1 - t0 - pauseTimeNs); if (@event.Value < maxEvents) { while (pauseTimeNs > (Stopwatch.GetTimestamp() - t1)) { Thread.Sleep(0); } Send(); } else { latch.Set(); } }
public void OnNext(ValueEvent data, long sequence, bool endOfBatch) { switch (_functionStep) { case FunctionStep.One: case FunctionStep.Two: break; case FunctionStep.Three: var duration = (Stopwatch.GetTimestamp() - data.Value) * _ticksToNanos; duration /= 3; duration -= _nanoTimeCost; _histogram.AddObservation((long)duration); break; } if (sequence == _iterations - 1) { _mru.Set(); } }
public void OnEvent(ValueEvent @event, long sequence, bool endOfBatch) { switch (_functionStep) { case FunctionStep.One: case FunctionStep.Two: break; case FunctionStep.Three: var duration = (Stopwatch.GetTimestamp() - @event.Value) * (_ticksToNanos == 0L ? 1 : _ticksToNanos); duration /= 3; duration -= _nanoTimeCost; _histogram.AddObservation(duration); break; } if (sequence == _count && _mru != null) { _mru.Set(); } }
public void ShouldNotAddObservation() { var histogram = new Histogram(new long[] { 10, 20, 30 }); Assert.IsFalse(histogram.AddObservation(31L)); }
public void ShouldAddObservation() { Assert.IsTrue(_histogram.AddObservation(10L)); Assert.AreEqual(1L, _histogram.Count); }
public void ShouldAddObservation() { Assert.IsTrue(histogram.AddObservation(10L)); Assert.AreEqual(1L, histogram.GetCountAt(1)); }