Нужна помощь в использовании библиотеки Java HdrHistogram

Я использую Java-библиотеку HdrHistogram, но не получаю желаемый результат. Можете ли вы помочь мне понять, есть ли ошибка в библиотеке или ожидаемое значение.

В этом случае я ожидаю, что выход будет 1000000, но фактический выход составляет 1000003

import org.HdrHistogram.*;

public class Main {

public static void main(String[] args) throws InterruptedException {
    Histogram histogram = new Histogram(5);
    histogram.recordValue(1000000);
    histogram.recordValue(1000001);
    histogram.recordValue(1000002);
    histogram.recordValue(90);
    histogram.recordValue(10);

    System.err.println(histogram.getValueAtPercentile(50.0));
}
}

Почему это происходит. Мои настройки Maven:-

    <dependency>
        <groupId>org.hdrhistogram</groupId>
        <artifactId>HdrHistogram</artifactId>
        <version>2.1.8</version>
    </dependency>

1 ответ

Это правильное поведение. С 5 десятичными точками указанного разрешения / разделения (в вашем примере) любой результат, который равен 1000000 +/- 100, будет правильным. 1000003 находится в пределах этого диапазона, и histogram.valuesAreEquivalent(1000000, 1000003) будет / должен возвращать true. Обратите внимание, что вы можете использовать histogram.lowestEquivalentValue(1000000) и гистограмму. самое высокое EquivalentValue (1000000), чтобы установить диапазон эквивалентных значений.

Другие вопросы по тегам