2014-07-13 18 views
9

Tôi đang sử dụng http://openjdk.java.net/projects/code-tools/jmh/ cho điểm chuẩn và tôi nhận được một kết quả như:Lỗi điểm số "OpenJDK JMH" có nghĩa là gì?

 
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 

gì cột "Điểm báo lỗi" chính xác nghĩa và cách giải thích nó?

Trả lời

15

Đây là sai số của điểm số. Trong hầu hết các trường hợp, đó là một nửa số confidence interval. Hãy suy nghĩ về nó như thể có dấu "±" giữa "Điểm" và "Lỗi số điểm". Trên thực tế, nhật ký có thể đọc được của con người sẽ cho thấy rằng:

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

cảm ơn rất nhiều ... – salyh

+1

Btw, tôi nghĩ có chỗ để cải thiện ở đây. jmh bị "sai chính xác" (https://en.wikipedia.org/wiki/False_precision) như bạn có thể thấy từ dữ liệu của OP. Các chữ số đáng kể được hiển thị của phép đo sai hàm ý chính xác cao hơn lỗi. Ví dụ, nó không có ý nghĩa để nói "1.776361 ± 0.154321". Trường hợp tốt nhất là 1,78 ± 0,15. Bất kỳ chữ số nào khác là độ chính xác sai vì độ lớn của lỗi. Vì vậy, hãy cẩn thận với độ chính xác trong jmh. –