2014-07-13 45 views
9

Ben karşılaştırma için http://openjdk.java.net/projects/code-tools/jmh/ kullanıyorum ve böyle bir sonuç almak: Sütun "hatası Puan" neyiOpenJDK JMH "puan hatası" ne anlama geliyor?

 
Benchmark       Mode Samples  Score Score error Units 
o.a.f.c.j.b.TestClass.test1  avgt   5 2372870,600 210897,743 us/op 
o.a.f.c.j.b.TestClass.test2  avgt   5 2079931,850 394727,671 us/op 
o.a.f.c.j.b.TestClass.test3  avgt   5 26585,818 21105,739 us/op 
o.a.f.c.j.b.TestClass.test4  avgt   5 19113,230  8012,852 us/op 
o.a.f.c.j.b.TestClass.test5  avgt   5  2586,413  1949,487 us/op 
o.a.f.c.j.b.TestClass.test6  avgt   5  1942,963  1619,967 us/op 
o.a.f.c.j.b.TestClass.test7  avgt   5  233,902  73,861 us/op 
o.a.f.c.j.b.TestClass.test8  avgt   5  191,970  126,682 us/op 

tam anlamı ve nasıl yorumlamak?

cevap

15

Skor için hata payı budur. Çoğu durumda, bu, confidence interval'un yarısıdır. "Puan" ve "Puan hatası" arasında bir "±" işareti varmış gibi düşünün. Aslında, insanlar tarafından okunabilir günlüğü gösterecektir:

Result: 1.986 ±(99.9%) 0.009 ops/ns [Average] 
    Statistics: (min, avg, max) = (1.984, 1.986, 1.990), stdev = 0.002 
    Confidence interval (99.9%): [1.977, 1.995] 


# Run complete. Total time: 00:00:12 

Benchmark     Mode Samples Score Score error Units 
o.o.j.s.HelloWorld.hello thrpt  5 1.986  0.009 ops/ns 
+0

sayesinde çok ... – salyh

+1

Btw, ben iyileştirilmesi gereken burada var. jmh, OP'nin verisinden de görebileceğiniz gibi, "yanlış duyarlıktan" muzdariptir (https://en.wikipedia.org/wiki/False_precision). Ölçümün görüntülenen anlamlı basamakları hatalı olarak hatadan daha yüksek hassasiyet anlamına gelir. Örneğin, "1.776361 ± 0.154321" demek mantıklı değildir. En iyi durum 1,78 ± 0,15 olur. Başka herhangi bir rakam hatanın büyüklüğü nedeniyle yanlış bir duyarlıktır. Bu yüzden jmh'de hassasiyete dikkat edin. –