<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>