2016-04-16 2 views
0

Я использую 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> 

ответ

0

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