<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 28, 2015 at 7:31 PM, Joe Armstrong <span dir="ltr"><<a href="mailto:erlang@gmail.com" target="_blank">erlang@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div id=":i6" class="" style="overflow:hidden">As an additional exercise you should measure and compare with <span class="">lists</span>:<span class="">sort</span></div></blockquote></div><div class="gmail_extra"><br></div>This is a sneak-peak on this years christmas-hacking project, eministat, which is a benchmarking tool for Erlang. It's ASCII art does require you to use a fixed width font when viewing the output however. The results are:</div><div class="gmail_extra"><br></div><div class="gmail_extra">* lists:sort/1 (#) is significantly faster than everything else.</div><div class="gmail_extra">* sortl (x) and sortx (%) has no provable difference</div><div class="gmail_extra">* sortf (+) and sortfl (*) are significantly slower than sortl (x)</div><div class="gmail_extra"><br></div><div class="gmail_extra">I'll write a more complete announcement when things are cleaned up a bit more later on.<br><br><div class="gmail_extra">15> qsort_eministat:t().</div><div class="gmail_extra">x sortl</div><div class="gmail_extra">+ sortf</div><div class="gmail_extra">* sortfl</div><div class="gmail_extra">% sortx</div><div class="gmail_extra"># lists:sort/1</div><div class="gmail_extra">+--------------------------------------------------------------------------+</div><div class="gmail_extra">|##                 ###x          ***     +++ +++|</div><div class="gmail_extra">|##                 ##xx          **     ++ +++|</div><div class="gmail_extra">|##                 x#xx          **     ++ ++ |</div><div class="gmail_extra">|##                 x#x           **     ++ +  |</div><div class="gmail_extra">|##                 x#x           **     ++ +  |</div><div class="gmail_extra">|##                 x#x           **     ++ +  |</div><div class="gmail_extra">|##                 x#x           **     ++ +  |</div><div class="gmail_extra">|##                 x#           **     ++ +  |</div><div class="gmail_extra">|##                 #           *      + +  |</div><div class="gmail_extra">|##                 #           *      + +  |</div><div class="gmail_extra">|#                  #           *      + +  |</div><div class="gmail_extra">|#                  #           *      + +  |</div><div class="gmail_extra">|#                  #           *      + +  |</div><div class="gmail_extra">|#                  #           *      + +  |</div><div class="gmail_extra">|#                  #           *      + +  |</div><div class="gmail_extra">|#                  #           *      + +  |</div><div class="gmail_extra">|#                  #           *      + +  |</div><div class="gmail_extra">|#                  #           *       +  |</div><div class="gmail_extra">|#                  #           *       +  |</div><div class="gmail_extra">|#                  #           *         |</div><div class="gmail_extra">|#                  #           *         |</div><div class="gmail_extra">|#                  #           *         |</div><div class="gmail_extra">|#                  #           *         |</div><div class="gmail_extra">|#                  #           *         |</div><div class="gmail_extra">|#                  #           *         |</div><div class="gmail_extra">|#                  #           *         |</div><div class="gmail_extra">|#                  #           *         |</div><div class="gmail_extra">|#                  #           *         |</div><div class="gmail_extra">|#                  #           *         |</div><div class="gmail_extra">|#                  #           *         |</div><div class="gmail_extra">|#                  #           *         |</div><div class="gmail_extra">|#                  #           *         |</div><div class="gmail_extra">|#                  %           *         |</div><div class="gmail_extra">|#                  %           *         |</div><div class="gmail_extra">|#                  %           *         |</div><div class="gmail_extra">|#                  %           *         |</div><div class="gmail_extra">|#                  %           *         |</div><div class="gmail_extra">|#                  %           *         |</div><div class="gmail_extra">|#                  %           *         |</div><div class="gmail_extra">|#                  %           *         |</div><div class="gmail_extra">|                  |A|                   |</div><div class="gmail_extra">|                                   MA|  |</div><div class="gmail_extra">|                             A|        |</div><div class="gmail_extra">|                  |A                    |</div><div class="gmail_extra">|A|                                     |</div><div class="gmail_extra">+--------------------------------------------------------------------------+</div><div class="gmail_extra">Dataset: x N=50 CI=95.0000</div><div class="gmail_extra">Statistic   Value   [     Bias] (Bootstrapped LB‥UB)</div><div class="gmail_extra">Min:       47.0000</div><div class="gmail_extra">1st Qu.     48.0000</div><div class="gmail_extra">Median:     48.0000</div><div class="gmail_extra">3rd Qu.     48.0000</div><div class="gmail_extra">Max:       50.0000</div><div class="gmail_extra">Average:     48.1000 [  -2.66000e-4] (    47.9000 ‥    48.3000)</div><div class="gmail_extra">Std. Dev:    0.735402 [  -1.34737e-2] (   0.580288 ‥    0.932191)</div><div class="gmail_extra"><br></div><div class="gmail_extra">Outliers: 8/10 = 18 (μ=48.0997, σ=0.721928)</div><div class="gmail_extra">    Outlier variance:   1.96000e-2 (slight)</div><div class="gmail_extra"><br></div><div class="gmail_extra">------</div><div class="gmail_extra"><br></div><div class="gmail_extra">Dataset: + N=50 CI=95.0000</div><div class="gmail_extra">Statistic   Value   [     Bias] (Bootstrapped LB‥UB)</div><div class="gmail_extra">Min:       74.0000</div><div class="gmail_extra">1st Qu.     76.0000</div><div class="gmail_extra">Median:     76.0000</div><div class="gmail_extra">3rd Qu.     77.0000</div><div class="gmail_extra">Max:       79.0000</div><div class="gmail_extra">Average:     76.4200 [  -6.32000e-4] (    76.1200 ‥    76.6800)</div><div class="gmail_extra">Std. Dev:    1.03194 [  -1.54531e-2] (   0.852607 ‥    1.29363)</div><div class="gmail_extra"><br></div><div class="gmail_extra">Outliers: 1/2 = 3 (μ=76.4194, σ=1.01649)</div><div class="gmail_extra">    Outlier variance:   1.96000e-2 (slight)</div><div class="gmail_extra"><br></div><div class="gmail_extra">Difference at 95.0% confidence</div><div class="gmail_extra">    28.3200 ± 0.355542</div><div class="gmail_extra">    58.8773% ± 0.739172%</div><div class="gmail_extra">    (Student's t, pooled s = 0.896023)</div><div class="gmail_extra">------</div><div class="gmail_extra"><br></div><div class="gmail_extra">Dataset: * N=50 CI=95.0000</div><div class="gmail_extra">Statistic   Value   [     Bias] (Bootstrapped LB‥UB)</div><div class="gmail_extra">Min:       65.0000</div><div class="gmail_extra">1st Qu.     66.0000</div><div class="gmail_extra">Median:     66.0000</div><div class="gmail_extra">3rd Qu.     66.0000</div><div class="gmail_extra">Max:       67.0000</div><div class="gmail_extra">Average:     66.1400 [  -2.14000e-4] (    66.0200 ‥    66.2400)</div><div class="gmail_extra">Std. Dev:    0.404566 [  -8.32260e-3] (   0.303046 ‥    0.520596)</div><div class="gmail_extra"><br></div><div class="gmail_extra">Outliers: 1/8 = 9 (μ=66.1398, σ=0.396243)</div><div class="gmail_extra">    Outlier variance:   1.96000e-2 (slight)</div><div class="gmail_extra"><br></div><div class="gmail_extra">Difference at 95.0% confidence</div><div class="gmail_extra">    18.0400 ± 0.235502</div><div class="gmail_extra">    37.5052% ± 0.489608%</div><div class="gmail_extra">    (Student's t, pooled s = 0.593502)</div><div class="gmail_extra">------</div><div class="gmail_extra"><br></div><div class="gmail_extra">Dataset: % N=50 CI=95.0000</div><div class="gmail_extra">Statistic   Value   [     Bias] (Bootstrapped LB‥UB)</div><div class="gmail_extra">Min:       47.0000</div><div class="gmail_extra">1st Qu.     48.0000</div><div class="gmail_extra">Median:     48.0000</div><div class="gmail_extra">3rd Qu.     48.0000</div><div class="gmail_extra">Max:       49.0000</div><div class="gmail_extra">Average:     47.9800 [  -2.34000e-4] (    47.8800 ‥    48.0200)</div><div class="gmail_extra">Std. Dev:    0.246610 [  -1.61201e-2] (  0.00000e+0 ‥    0.377424)</div><div class="gmail_extra"><br></div><div class="gmail_extra">Outliers: 2/1 = 3 (μ=47.9798, σ=0.230490)</div><div class="gmail_extra">    Outlier variance:   1.96000e-2 (slight)</div><div class="gmail_extra"><br></div><div class="gmail_extra">No difference proven at 95.0% confidence</div><div class="gmail_extra">------</div><div class="gmail_extra"><br></div><div class="gmail_extra">Dataset: # N=50 CI=95.0000</div><div class="gmail_extra">Statistic   Value   [     Bias] (Bootstrapped LB‥UB)</div><div class="gmail_extra">Min:       20.0000</div><div class="gmail_extra">1st Qu.     20.0000</div><div class="gmail_extra">Median:     20.0000</div><div class="gmail_extra">3rd Qu.     20.0000</div><div class="gmail_extra">Max:       21.0000</div><div class="gmail_extra">Average:     20.2000 [  -5.00000e-5] (    20.1000 ‥    20.3000)</div><div class="gmail_extra">Std. Dev:    0.404061 [  -6.49526e-3] (   0.303046 ‥    0.462910)</div><div class="gmail_extra"><br></div><div class="gmail_extra">Outliers: 0/10 = 10 (μ=20.1999, σ=0.397566)</div><div class="gmail_extra">    Outlier variance:   7.50015e-2 (slight)</div><div class="gmail_extra"><br></div><div class="gmail_extra">Difference at 95.0% confidence</div><div class="gmail_extra">    -27.9000 ± 0.235433</div><div class="gmail_extra">    -58.0042% ± 0.489467%</div><div class="gmail_extra">    (Student's t, pooled s = 0.593330)</div><div class="gmail_extra">------</div><div class="gmail_extra"><br></div><div class="gmail_extra">ok</div><div><br></div><div><br></div>-- <br><div class="gmail_signature">J.</div>
</div></div>