Last active
February 28, 2019 00:49
-
-
Save Akiyah/c55e0f218e342cbed8f8b23ffa74a0e6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'benchmark' | |
M = 1000 | |
Benchmark.bm 30 do |r| | |
[1, 10, 100, 1000].each do |n| | |
a = (0...(n*100)).to_a | |
b0 = ((0*n)...(1*n)).to_a | |
b1 = ((1*n)...(2*n)).to_a | |
b2 = ((2*n)...(3*n)).to_a | |
b3 = ((3*n)...(4*n)).to_a | |
b4 = ((4*n)...(5*n)).to_a | |
b5 = ((5*n)...(6*n)).to_a | |
b6 = ((6*n)...(7*n)).to_a | |
b7 = ((7*n)...(8*n)).to_a | |
b8 = ((8*n)...(9*n)).to_a | |
b9 = ((9*n)...(10*n)).to_a | |
r.report("#{n}, Array#-, 1,") { M.times { a - b0 } } | |
r.report("#{n}, Array#-, 2,") { M.times { a - b0 - b1 } } | |
r.report("#{n}, Array#-, 3,") { M.times { a - b0 - b1 - b2 } } | |
r.report("#{n}, Array#-, 4,") { M.times { a - b0 - b1 - b2 - b3 } } | |
r.report("#{n}, Array#-, 5,") { M.times { a - b0 - b1 - b2 - b3 - b4 } } | |
r.report("#{n}, Array#-, 6,") { M.times { a - b0 - b1 - b2 - b3 - b4 - b5 } } | |
r.report("#{n}, Array#-, 7,") { M.times { a - b0 - b1 - b2 - b3 - b4 - b5 - b6 } } | |
r.report("#{n}, Array#-, 8,") { M.times { a - b0 - b1 - b2 - b3 - b4 - b5 - b6 - b7 } } | |
r.report("#{n}, Array#-, 9,") { M.times { a - b0 - b1 - b2 - b3 - b4 - b5 - b6 - b7 - b8 } } | |
r.report("#{n}, Array#-, 10,") { M.times { a - b0 - b1 - b2 - b3 - b4 - b5 - b6 - b7 - b8 - b9 } } | |
r.report("#{n}, Array#difference, 1,") { M.times { a.difference(b0) } } | |
r.report("#{n}, Array#difference, 2,") { M.times { a.difference(b0, b1) } } | |
r.report("#{n}, Array#difference, 3,") { M.times { a.difference(b0, b1, b2) } } | |
r.report("#{n}, Array#difference, 4,") { M.times { a.difference(b0, b1, b2, b3) } } | |
r.report("#{n}, Array#difference, 5,") { M.times { a.difference(b0, b1, b2, b3, b4) } } | |
r.report("#{n}, Array#difference, 6,") { M.times { a.difference(b0, b1, b2, b3, b4, b5) } } | |
r.report("#{n}, Array#difference, 7,") { M.times { a.difference(b0, b1, b2, b3, b4, b5, b6) } } | |
r.report("#{n}, Array#difference, 8,") { M.times { a.difference(b0, b1, b2, b3, b4, b5, b6, b7) } } | |
r.report("#{n}, Array#difference, 9,") { M.times { a.difference(b0, b1, b2, b3, b4, b5, b6, b7, b8) } } | |
r.report("#{n}, Array#difference, 10,") { M.times { a.difference(b0, b1, b2, b3, b4, b5, b6, b7, b8, b9) } } | |
end | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
n | method | argc | time | |
---|---|---|---|---|
1 | Array#- | 1 | 0.002759 | |
1 | Array#- | 2 | 0.006072 | |
1 | Array#- | 3 | 0.006631 | |
1 | Array#- | 4 | 0.010692 | |
1 | Array#- | 5 | 0.011508 | |
1 | Array#- | 6 | 0.014615 | |
1 | Array#- | 7 | 0.014205 | |
1 | Array#- | 8 | 0.019318 | |
1 | Array#- | 9 | 0.020224 | |
1 | Array#- | 10 | 0.021061 | |
1 | Array#difference | 1 | 0.002425 | |
1 | Array#difference | 2 | 0.005670 | |
1 | Array#difference | 3 | 0.006545 | |
1 | Array#difference | 4 | 0.005206 | |
1 | Array#difference | 5 | 0.006910 | |
1 | Array#difference | 6 | 0.007500 | |
1 | Array#difference | 7 | 0.008321 | |
1 | Array#difference | 8 | 0.009362 | |
1 | Array#difference | 9 | 0.011211 | |
1 | Array#difference | 10 | 0.012713 | |
10 | Array#- | 1 | 0.075318 | |
10 | Array#- | 2 | 0.149664 | |
10 | Array#- | 3 | 0.221649 | |
10 | Array#- | 4 | 0.291970 | |
10 | Array#- | 5 | 0.379423 | |
10 | Array#- | 6 | 0.431458 | |
10 | Array#- | 7 | 0.502145 | |
10 | Array#- | 8 | 0.670647 | |
10 | Array#- | 9 | 0.694663 | |
10 | Array#- | 10 | 0.783733 | |
10 | Array#difference | 1 | 0.074446 | |
10 | Array#difference | 2 | 0.130630 | |
10 | Array#difference | 3 | 0.197300 | |
10 | Array#difference | 4 | 0.297945 | |
10 | Array#difference | 5 | 0.342663 | |
10 | Array#difference | 6 | 0.456715 | |
10 | Array#difference | 7 | 0.447880 | |
10 | Array#difference | 8 | 0.581359 | |
10 | Array#difference | 9 | 0.573306 | |
10 | Array#difference | 10 | 0.655751 | |
100 | Array#- | 1 | 0.385401 | |
100 | Array#- | 2 | 0.646665 | |
100 | Array#- | 3 | 0.952984 | |
100 | Array#- | 4 | 1.297722 | |
100 | Array#- | 5 | 1.613933 | |
100 | Array#- | 6 | 1.845603 | |
100 | Array#- | 7 | 2.154625 | |
100 | Array#- | 8 | 2.502676 | |
100 | Array#- | 9 | 2.889823 | |
100 | Array#- | 10 | 3.225137 | |
100 | Array#difference | 1 | 0.337869 | |
100 | Array#difference | 2 | 0.568485 | |
100 | Array#difference | 3 | 0.817729 | |
100 | Array#difference | 4 | 0.996100 | |
100 | Array#difference | 5 | 1.245841 | |
100 | Array#difference | 6 | 1.503868 | |
100 | Array#difference | 7 | 1.828281 | |
100 | Array#difference | 8 | 1.963303 | |
100 | Array#difference | 9 | 2.272640 | |
100 | Array#difference | 10 | 2.416088 | |
1000 | Array#- | 1 | 3.998049 | |
1000 | Array#- | 2 | 7.518972 | |
1000 | Array#- | 3 | 10.679167 | |
1000 | Array#- | 4 | 14.606882 | |
1000 | Array#- | 5 | 18.254795 | |
1000 | Array#- | 6 | 22.083142 | |
1000 | Array#- | 7 | 26.095931 | |
1000 | Array#- | 8 | 28.234937 | |
1000 | Array#- | 9 | 32.511315 | |
1000 | Array#- | 10 | 35.640246 | |
1000 | Array#difference | 1 | 4.061106 | |
1000 | Array#difference | 2 | 6.824668 | |
1000 | Array#difference | 3 | 8.970046 | |
1000 | Array#difference | 4 | 11.629179 | |
1000 | Array#difference | 5 | 14.431434 | |
1000 | Array#difference | 6 | 17.471096 | |
1000 | Array#difference | 7 | 20.723247 | |
1000 | Array#difference | 8 | 23.597272 | |
1000 | Array#difference | 9 | 26.951781 | |
1000 | Array#difference | 10 | 29.637970 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
user system total real | |
1, Array#-, 1, 0.002759 0.000997 0.003756 ( 0.004050) | |
1, Array#-, 2, 0.006072 0.001048 0.007120 ( 0.007137) | |
1, Array#-, 3, 0.006631 0.000926 0.007557 ( 0.008281) | |
1, Array#-, 4, 0.010692 0.003327 0.014019 ( 0.014187) | |
1, Array#-, 5, 0.011508 0.001047 0.012555 ( 0.012707) | |
1, Array#-, 6, 0.014615 0.000303 0.014918 ( 0.015612) | |
1, Array#-, 7, 0.014205 0.000110 0.014315 ( 0.014614) | |
1, Array#-, 8, 0.019318 0.000212 0.019530 ( 0.022787) | |
1, Array#-, 9, 0.020224 0.000409 0.020633 ( 0.023129) | |
1, Array#-, 10, 0.021061 0.000239 0.021300 ( 0.022615) | |
1, Array#difference, 1, 0.002425 0.000029 0.002454 ( 0.002800) | |
1, Array#difference, 2, 0.005670 0.000204 0.005874 ( 0.009497) | |
1, Array#difference, 3, 0.006545 0.000033 0.006578 ( 0.006919) | |
1, Array#difference, 4, 0.005206 0.000047 0.005253 ( 0.005845) | |
1, Array#difference, 5, 0.006910 0.000133 0.007043 ( 0.009468) | |
1, Array#difference, 6, 0.007500 0.000083 0.007583 ( 0.012418) | |
1, Array#difference, 7, 0.008321 0.000079 0.008400 ( 0.008889) | |
1, Array#difference, 8, 0.009362 0.000073 0.009435 ( 0.009740) | |
1, Array#difference, 9, 0.011211 0.000167 0.011378 ( 0.011822) | |
1, Array#difference, 10, 0.012713 0.000181 0.012894 ( 0.014518) | |
10, Array#-, 1, 0.075318 0.005713 0.081031 ( 0.088888) | |
10, Array#-, 2, 0.149664 0.006211 0.155875 ( 0.183658) | |
10, Array#-, 3, 0.221649 0.012065 0.233714 ( 0.241885) | |
10, Array#-, 4, 0.291970 0.025348 0.317318 ( 0.339085) | |
10, Array#-, 5, 0.379423 0.007600 0.387023 ( 0.402857) | |
10, Array#-, 6, 0.431458 0.004851 0.436309 ( 0.441364) | |
10, Array#-, 7, 0.502145 0.019989 0.522134 ( 0.530016) | |
10, Array#-, 8, 0.670647 0.011038 0.681685 ( 0.702528) | |
10, Array#-, 9, 0.694663 0.026919 0.721582 ( 0.787540) | |
10, Array#-, 10, 0.783733 0.019710 0.803443 ( 1.043021) | |
10, Array#difference, 1, 0.074446 0.000956 0.075402 ( 0.080318) | |
10, Array#difference, 2, 0.130630 0.002296 0.132926 ( 0.139268) | |
10, Array#difference, 3, 0.197300 0.001542 0.198842 ( 0.209748) | |
10, Array#difference, 4, 0.297945 0.006421 0.304366 ( 0.433877) | |
10, Array#difference, 5, 0.342663 0.005306 0.347969 ( 0.396090) | |
10, Array#difference, 6, 0.456715 0.006796 0.463511 ( 0.509525) | |
10, Array#difference, 7, 0.447880 0.003476 0.451356 ( 0.467933) | |
10, Array#difference, 8, 0.581359 0.007229 0.588588 ( 0.646385) | |
10, Array#difference, 9, 0.573306 0.004946 0.578252 ( 0.600846) | |
10, Array#difference, 10, 0.655751 0.008458 0.664209 ( 0.719927) | |
100, Array#-, 1, 0.385401 0.008932 0.394333 ( 0.655632) | |
100, Array#-, 2, 0.646665 0.020362 0.667027 ( 0.736204) | |
100, Array#-, 3, 0.952984 0.025919 0.978903 ( 1.068324) | |
100, Array#-, 4, 1.297722 0.044956 1.342678 ( 1.412830) | |
100, Array#-, 5, 1.613933 0.038228 1.652161 ( 1.717415) | |
100, Array#-, 6, 1.845603 0.051568 1.897171 ( 1.960612) | |
100, Array#-, 7, 2.154625 0.042647 2.197272 ( 2.235376) | |
100, Array#-, 8, 2.502676 0.068105 2.570781 ( 2.640583) | |
100, Array#-, 9, 2.889823 0.072653 2.962476 ( 3.179080) | |
100, Array#-, 10, 3.225137 0.089681 3.314818 ( 3.470182) | |
100, Array#difference, 1, 0.337869 0.007883 0.345752 ( 0.366157) | |
100, Array#difference, 2, 0.568485 0.009476 0.577961 ( 0.599460) | |
100, Array#difference, 3, 0.817729 0.011180 0.828909 ( 0.924980) | |
100, Array#difference, 4, 0.996100 0.007590 1.003690 ( 1.019640) | |
100, Array#difference, 5, 1.245841 0.014926 1.260767 ( 1.309490) | |
100, Array#difference, 6, 1.503868 0.016651 1.520519 ( 1.614833) | |
100, Array#difference, 7, 1.828281 0.029860 1.858141 ( 2.053745) | |
100, Array#difference, 8, 1.963303 0.014949 1.978252 ( 2.042669) | |
100, Array#difference, 9, 2.272640 0.026724 2.299364 ( 2.433902) | |
100, Array#difference, 10, 2.416088 0.031233 2.447321 ( 2.707060) | |
1000, Array#-, 1, 3.998049 0.514314 4.512363 ( 4.798258) | |
1000, Array#-, 2, 7.518972 0.982890 8.501862 ( 9.051585) | |
1000, Array#-, 3, 10.679167 1.270621 11.949788 ( 12.338518) | |
1000, Array#-, 4, 14.606882 1.751011 16.357893 ( 17.127021) | |
1000, Array#-, 5, 18.254795 2.068912 20.323707 ( 21.426640) | |
1000, Array#-, 6, 22.083142 2.769133 24.852275 ( 27.566783) | |
1000, Array#-, 7, 26.095931 3.202719 29.298650 ( 32.151704) | |
1000, Array#-, 8, 28.234937 2.976802 31.211739 ( 33.459355) | |
1000, Array#-, 9, 32.511315 3.493633 36.004948 ( 40.067801) | |
1000, Array#-, 10, 35.640246 3.872886 39.513132 ( 43.384938) | |
1000, Array#difference, 1, 4.061106 0.411439 4.472545 ( 4.641684) | |
1000, Array#difference, 2, 6.824668 0.510581 7.335249 ( 8.340443) | |
1000, Array#difference, 3, 8.970046 0.464136 9.434182 ( 9.951463) | |
1000, Array#difference, 4, 11.629179 0.524005 12.153184 ( 13.286905) | |
1000, Array#difference, 5, 14.431434 0.536189 14.967623 ( 16.337830) | |
1000, Array#difference, 6, 17.471096 0.481025 17.952121 ( 19.220038) | |
1000, Array#difference, 7, 20.723247 0.563418 21.286665 ( 23.571910) | |
1000, Array#difference, 8, 23.597272 0.562419 24.159691 ( 26.248048) | |
1000, Array#difference, 9, 26.951781 0.639108 27.590889 ( 30.601349) | |
1000, Array#difference, 10, 29.637970 0.655714 30.293684 ( 33.246102) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment