??????????JMH????????????????????????????????????в??????1000.000 ??10.000.0000 ????????????????????У???????????á???????д?????????????????????????Java??????????????????????????????????Щ?????????????????????Bleedsort 87ms vs Java ?????105ms; 938ms vs 1.144s??
????Benchmark Mode Cnt Score Error Units Corrected
????MyBenchmark._1e6U sample 8512 0.024 ± 0.001 s/op
????MyBenchmark._1e7U sample 985 0.236 ± 0.001 s/op
??????????????????Щ???????????
????MyBench.int1e6UQuickSort sample 1641 0.131 ± 0.001 s/op 0.107 ± 0.002
????MyBench.int1e6UBleedSort sample 2410 0.087 ± 0.001 s/op 0.063 ± 0.002
????MyBench.int1e6UJavaSort sample 1978 0.105 ± 0.001 s/op 0.081 ± 0.002
????MyBench.int1e7UQuickSort sample 200 1.483 ± 0.014 s/op 1.459 ± 0.015
????MyBench.int1e7UBleedSort sample 373 0.938 ± 0.009 s/op 0.914 ± 0.010
????MyBench.int1e7UJavaSort sample 200 1.144 ± 0.009 s/op 1.120 ± 0.010
?????????????????????????????????????Щ??????????Java????????? 10-15% ??
??????1000.000??????????? 10% ???? 1% ??????????????????????????????????????????
????Benchmark Mode Cnt Score Error Units Corrected
????._1e6Iwf010 sample 20705 9.701 ± 0.033 ms/op
????._1e6Iwf001 sample 148693 1.344 ± 0.003 ms/op
???????????????????
????.int1e6Iw010BleedSort sample 4159 49.377 ± 0.571 ms/op 39.68 ± 0.60
????.int1e6Iw010JavaSort sample 3937 52.139 ± 0.229 ms/op 42.44 ± 0.25
????.int1e6Iw010QuickSort sample 3899 52.457 ± 0.210 ms/op 42.76 ± 0.23
????10% ???????
????.int1e6Iw001BleedSort sample 6190 32.821 ± 0.219 ms/op 31.48 ± 0.22
????.int1e6Iw001JavaSort sample 8113 24.910 ± 0.079 ms/op 23.57 ± 0.08
????.int1e6Iw001QuickSort sample 8653 23.367 ± 0.056 ms/op 22.02 ± 0.06
????^^ 1%
???????????????????10.000?????С????????????? ??~bin(100??0.5)???????????????????????????????????????????????????????????????????? ????Щ?????У??????????????50?????????????795.5????????40???????????????108.4??
??????????????1000.0000??????????????????????? Arrays.sort() ?????????????Щ???鶼?к????????????????е??С?1e6???????????450??????????????
????Benchmark Mode Cnt Score Error Units Corrected
????._1e4bin100 sample 152004 1.316 ± 0.001 ms/op
????^^ for correction
????.int1e4bin100BleedSort sample 148681 1.345 ± 0.001 ms/op 0.029 ± 0.002
????.int1e4bin100JavaSort sample 150864 1.326 ± 0.001 ms/op 0.010 ± 0.002
????.int1e4bin100QuickSort sample 146852 1.362 ± 0.001 ms/op 0.046 ± 0.002
????.int1e6bin1e4BleedSort sample 75344 2.654 ± 0.005 ms/op -
????.int1e6bin1e4JavaSort sample 146801 1.361 ± 0.002 ms/op -
????.int1e6bin1e4QuickSort sample 76467 2.615 ± 0.005 ms/op -
??????????С????10.000?? 100.000??????????????£???????????п??????????????????á?
????MyBench.int1e4UBleedSort sample 216492 0.924 ± 0.001 ms/op 0.683 ± 0.002
????MyBench.int1e4UJavaSort sample 253489 0.789 ± 0.001 ms/op 0.548 ± 0.002
????MyBench.int1e4UQuickSort sample 217394 0.920 ± 0.001 ms/op 0.679 ± 0.002
????MyBench.int1e5UBleedSort sample 18752 0.011 ± 0.001 s/op 0.009 ± 0.002
????MyBench.int1e5UJavaSort sample 22335 0.009 ± 0.001 s/op 0.007 ± 0.002
????MyBench.int1e5UQuickSort sample 18748 0.011 ± 0.001 s/op 0.009 ± 0.002
????????????????治???????????£???????????????????????????????????????Ч???????
??????????????????????????Щ????? bin(100?? 0.5) ?? bin(1000?? 0.5)??
???????????????????????100?????????????????R???????????
????> rbinom(100?? 100?? 0.5)
????[1] 43 49 51 47 49 59 40 46 46 51 50 49 49 45 50 51 50 49 53 52 45 53 48 56 45
????[26] 47 55 47 53 53 56 41 47 42 51 51 46 49 49 52 46 48 49 50 48 56 54 49 53 52
????[51] 54 48 45 45 50 48 54 49 52 50 48 48 49 45 54 54 50 41 53 45 51 48 53 52 52
????[76] 50 53 47 55 47 60 54 52 56 45 46 54 46 38 43 53 45 62 48 52 52 52 49 52 56
????> rbinom(100?? 1000?? 0.5)
????[1] 515 481 523 519 524 516 498 473 523 514 483 496 458 506 507 491 514 489
????[19] 475 489 485 507 486 523 521 492 502 500 503 501 504 482 518 506 498 525
????[37] 498 491 492 479 506 499 505 497 510 479 504 510 485 488 495 519 522 490
????[55] 517 511 511 488 519 508 475 521 505 493 480 498 490 492 492 476 490 506
????[73] 496 505 521 518 506 509 477 483 509 493 497 501 483 502 470 515 519 509
????[91] 510 496 477 508 506 481 490 511 498 476