2016-05-02 12 views

Antwort

1

Wie javadoc angibt, ist es der Wert .

Angenommen, Sie haben zwei Verteilungen (auch Benchmark-Läufe) von zwei Methoden Laufzeiten. Standardmäßig geht JMH von einer normalen Verteilung mit einigen Parametern aus (Mittelwert und Varianz). Aber Verteilungen sind keine Zahlen: Man kann nicht ein Mittel mit einem anderen vergleichen und sagen: "Hey, zuerst ist das Mittel kleiner als das zweite, also ist der erste Ansatz im Durchschnitt besser!". Zuerst sollten Sie beweisen, dass sie nicht zur selben Verteilung gehören (es ist immer noch möglich, auch wenn sie (Stichproben, nicht Distributionen) leicht unterschiedliche Mittel haben), sonst macht ein solcher Vergleich keinen Sinn. Für solche Tests wird speziell statistical test verwendet. Solange der Test jedoch mit Samples und nicht mit tatsächlichen Verteilungen arbeitet, kann der Test nicht sagen: "Zwei Datensätze gehören nicht zur selben Distribution". Test kann nur sagen "Zwei Datensätze gehören nicht zur selben Distribution mit 99% Wahrscheinlichkeit ". Diese 99% (oder jede andere) ist tatsächlich das Vertrauen, das Sie sich wünschen.

So Grundsätzlich bedeutet s1.compareTo(s2, 0.9) == 1 dass s1 (erste Benchmark-Laufzeiten) kleinere mittlere Laufzeit hat als die zweiten mit 90% Wahrscheinlichkeit (und mit 10% es könnte jedes anderes Ergebnis, nicht nur das Gegenteil).