Paste: sorting scorecard

Author: kssreeram
Mode: text
Date: Mon, 5 Jul 2010 17:34:28
Plain Text |
python bench.py

SMALL ARRAYS (n = 1000, iterations = 1000)
libstdc++ std::sort                           0.039161 sec,  1.00x
clay hybrid quicksort (pointers)              0.048146 sec,  1.23x
clay recursive quicksort (pointers)           0.050095 sec,  1.28x
clay recursive quicksort (indexing)           0.055677 sec,  1.42x
clay iterative quicksort (pointers)           0.061521 sec,  1.57x
clay median-of-3 quicksort (pointers)         0.063290 sec,  1.62x
clay iterative quicksort (indexing)           0.064850 sec,  1.66x
clay median-of-3 quicksort (indexing)         0.066014 sec,  1.69x
libc qsort                                    0.094520 sec,  2.41x
python sort                                   0.256816 sec,  6.56x

LARGE ARRAYS (n = 100000, iterations = 100)
libstdc++ std::sort                           0.644759 sec,  1.00x
clay hybrid quicksort (pointers)              0.754498 sec,  1.17x
clay recursive quicksort (pointers)           0.806814 sec,  1.25x
clay iterative quicksort (pointers)           0.809763 sec,  1.26x
clay median-of-3 quicksort (pointers)         0.839164 sec,  1.30x
clay iterative quicksort (indexing)           0.890464 sec,  1.38x
clay recursive quicksort (indexing)           0.894886 sec,  1.39x
clay median-of-3 quicksort (indexing)         0.906966 sec,  1.41x
libc qsort                                    1.530384 sec,  2.37x
python sort                                   5.405510 sec,  8.38x

SMALL MOSTLY SORTED ARRAYS
libstdc++ std::sort                           0.012400 sec,  1.00x
clay hybrid quicksort (pointers)              0.028219 sec,  2.28x
libc qsort                                    0.038869 sec,  3.13x
clay median-of-3 quicksort (pointers)         0.044733 sec,  3.61x
clay median-of-3 quicksort (indexing)         0.050499 sec,  4.07x
clay recursive quicksort (indexing)           0.057867 sec,  4.67x
clay recursive quicksort (pointers)           0.064344 sec,  5.19x
clay iterative quicksort (pointers)           0.072535 sec,  5.85x
clay iterative quicksort (indexing)           0.088338 sec,  7.12x
python sort                                   0.143511 sec,  11.57x

LARGE MOSTLY SORTED ARRAYS
libstdc++ std::sort                           0.138827 sec,  1.00x
libc qsort                                    0.496564 sec,  3.58x
clay hybrid quicksort (pointers)              0.605133 sec,  4.36x
clay median-of-3 quicksort (pointers)         0.723807 sec,  5.21x
python sort                                   0.951939 sec,  6.86x
clay median-of-3 quicksort (indexing)         0.993264 sec,  7.15x
clay iterative quicksort (pointers)           2.625871 sec,  18.91x
clay recursive quicksort (indexing)           2.692422 sec,  19.39x
clay recursive quicksort (pointers)           3.247217 sec,  23.39x
clay iterative quicksort (indexing)           3.400822 sec,  24.50x

SMALL MOSTLY REVERSE SORTED ARRAYS
libstdc++ std::sort                           0.021275 sec,  1.00x
clay hybrid quicksort (pointers)              0.028843 sec,  1.36x
clay median-of-3 quicksort (pointers)         0.041818 sec,  1.97x
clay median-of-3 quicksort (indexing)         0.047011 sec,  2.21x
clay recursive quicksort (pointers)           0.053654 sec,  2.52x
clay iterative quicksort (pointers)           0.055516 sec,  2.61x
clay recursive quicksort (indexing)           0.057015 sec,  2.68x
clay iterative quicksort (indexing)           0.063168 sec,  2.97x
libc qsort                                    0.073471 sec,  3.45x
python sort                                   0.161740 sec,  7.60x

LARGE MOSTLY REVERSE SORTED ARRAYS
libstdc++ std::sort                           0.387052 sec,  1.00x
clay hybrid quicksort (pointers)              0.422230 sec,  1.09x
clay median-of-3 quicksort (pointers)         0.487204 sec,  1.26x
clay median-of-3 quicksort (indexing)         0.613083 sec,  1.58x
libc qsort                                    0.941301 sec,  2.43x
clay iterative quicksort (pointers)           0.984967 sec,  2.54x
python sort                                   1.067029 sec,  2.76x
clay recursive quicksort (pointers)           1.180422 sec,  3.05x
clay recursive quicksort (indexing)           1.296979 sec,  3.35x
clay iterative quicksort (indexing)           1.331981 sec,  3.44x

Annotation: sorting scorepard II

Author: kssreeram
Mode: text
Date: Wed, 7 Jul 2010 01:31:30
Plain Text |
SMALL ARRAYS (n = 1000, iterations = 10000)
libstdc++ std::sort                           0.385945 sec,  1.00x
clay introsort                                0.397867 sec,  1.03x
clay hybrid quicksort (pointers)              0.437430 sec,  1.13x
clay recursive quicksort (pointers)           0.444093 sec,  1.15x
clay recursive quicksort (indexing)           0.518965 sec,  1.34x
clay iterative quicksort (pointers)           0.570217 sec,  1.48x
clay median-of-3 quicksort (pointers)         0.570833 sec,  1.48x
clay iterative quicksort (indexing)           0.611581 sec,  1.58x
clay median-of-3 quicksort (indexing)         0.621571 sec,  1.61x
libc qsort                                    0.890896 sec,  2.31x
python sort                                   2.355286 sec,  6.10x

LARGE ARRAYS (n = 100000, iterations = 100)
libstdc++ std::sort                           0.599681 sec,  1.00x
clay introsort                                0.614812 sec,  1.03x
clay recursive quicksort (pointers)           0.706863 sec,  1.18x
clay hybrid quicksort (pointers)              0.708131 sec,  1.18x
clay iterative quicksort (pointers)           0.757731 sec,  1.26x
clay median-of-3 quicksort (pointers)         0.774304 sec,  1.29x
clay recursive quicksort (indexing)           0.832321 sec,  1.39x
clay iterative quicksort (indexing)           0.859389 sec,  1.43x
clay median-of-3 quicksort (indexing)         0.869502 sec,  1.45x
libc qsort                                    1.425027 sec,  2.38x
python sort                                   4.380979 sec,  7.31x

SMALL MOSTLY SORTED ARRAYS
libstdc++ std::sort                           0.104672 sec,  1.00x
clay introsort                                0.154352 sec,  1.47x
clay hybrid quicksort (pointers)              0.256597 sec,  2.45x
libc qsort                                    0.363880 sec,  3.48x
clay median-of-3 quicksort (pointers)         0.411560 sec,  3.93x
clay median-of-3 quicksort (indexing)         0.446291 sec,  4.26x
clay recursive quicksort (pointers)           0.462713 sec,  4.42x
clay recursive quicksort (indexing)           0.526973 sec,  5.03x
clay iterative quicksort (pointers)           0.671734 sec,  6.42x
clay iterative quicksort (indexing)           0.718601 sec,  6.87x
python sort                                   1.302403 sec,  12.44x

LARGE MOSTLY SORTED ARRAYS
libstdc++ std::sort                           0.127733 sec,  1.00x
clay introsort                                0.172534 sec,  1.35x
libc qsort                                    0.451550 sec,  3.54x
clay hybrid quicksort (pointers)              0.547772 sec,  4.29x
clay median-of-3 quicksort (pointers)         0.672165 sec,  5.26x
clay median-of-3 quicksort (indexing)         0.804286 sec,  6.30x
python sort                                   0.809703 sec,  6.34x
clay recursive quicksort (pointers)           2.129414 sec,  16.67x
clay iterative quicksort (pointers)           2.287658 sec,  17.91x
clay recursive quicksort (indexing)           2.463293 sec,  19.28x
clay iterative quicksort (indexing)           2.483510 sec,  19.44x

SMALL MOSTLY REVERSE SORTED ARRAYS
libstdc++ std::sort                           0.200467 sec,  1.00x
clay hybrid quicksort (pointers)              0.261685 sec,  1.31x
clay recursive quicksort (pointers)           0.385367 sec,  1.92x
clay median-of-3 quicksort (pointers)         0.387861 sec,  1.93x
clay introsort                                0.423809 sec,  2.11x
clay median-of-3 quicksort (indexing)         0.439298 sec,  2.19x
clay iterative quicksort (pointers)           0.479391 sec,  2.39x
clay recursive quicksort (indexing)           0.493775 sec,  2.46x
clay iterative quicksort (indexing)           0.560342 sec,  2.80x
libc qsort                                    0.652274 sec,  3.25x
python sort                                   1.465354 sec,  7.31x

LARGE MOSTLY REVERSE SORTED ARRAYS
libstdc++ std::sort                           0.356128 sec,  1.00x
clay hybrid quicksort (pointers)              0.365856 sec,  1.03x
clay median-of-3 quicksort (pointers)         0.417686 sec,  1.17x
clay median-of-3 quicksort (indexing)         0.512417 sec,  1.44x
clay introsort                                0.744628 sec,  2.09x
clay recursive quicksort (pointers)           0.824225 sec,  2.31x
libc qsort                                    0.841594 sec,  2.36x
clay iterative quicksort (pointers)           0.875405 sec,  2.46x
python sort                                   0.886221 sec,  2.49x
clay iterative quicksort (indexing)           1.079095 sec,  3.03x
clay recursive quicksort (indexing)           1.191447 sec,  3.35x

COMBINED RESULTS
libstdc++ std::sort                           1.774626 sec,  1.00x
clay introsort                                2.508002 sec,  1.41x
clay hybrid quicksort (pointers)              2.577471 sec,  1.45x
clay median-of-3 quicksort (pointers)         3.234409 sec,  1.82x
clay median-of-3 quicksort (indexing)         3.693365 sec,  2.08x
libc qsort                                    4.625221 sec,  2.61x
clay recursive quicksort (pointers)           4.952675 sec,  2.79x
clay iterative quicksort (pointers)           5.642136 sec,  3.18x
clay recursive quicksort (indexing)           6.026774 sec,  3.40x
clay iterative quicksort (indexing)           6.312518 sec,  3.56x
python sort                                   11.199946 sec,  6.31x

Annotation: sorting scorecard 3

Author: kssreeram
Mode: text
Date: Wed, 7 Jul 2010 01:36:48
Plain Text |
SMALL RANDOM ARRAYS (n = 1000, iterations = 10000)
libstdc++ std::sort                           0.376219 sec,  1.00x
clay introsort                                0.407029 sec,  1.08x
clay hybrid quicksort (pointers)              0.437567 sec,  1.16x
clay recursive quicksort (pointers)           0.444154 sec,  1.18x
clay recursive quicksort (indexing)           0.518358 sec,  1.38x
clay iterative quicksort (pointers)           0.553916 sec,  1.47x
clay median-of-3 quicksort (pointers)         0.556043 sec,  1.48x
clay iterative quicksort (indexing)           0.626767 sec,  1.67x
clay median-of-3 quicksort (indexing)         0.632102 sec,  1.68x
libc qsort                                    0.898498 sec,  2.39x
python sort                                   2.354153 sec,  6.26x

LARGE RANDOM ARRAYS (n = 100000, iterations = 100)
libstdc++ std::sort                           0.600721 sec,  1.00x
clay introsort                                0.629521 sec,  1.05x
clay recursive quicksort (pointers)           0.705551 sec,  1.17x
clay hybrid quicksort (pointers)              0.708424 sec,  1.18x
clay iterative quicksort (pointers)           0.755717 sec,  1.26x
clay median-of-3 quicksort (pointers)         0.774119 sec,  1.29x
clay recursive quicksort (indexing)           0.811788 sec,  1.35x
clay iterative quicksort (indexing)           0.862812 sec,  1.44x
clay median-of-3 quicksort (indexing)         0.869308 sec,  1.45x
libc qsort                                    1.423912 sec,  2.37x
python sort                                   4.392655 sec,  7.31x

SMALL MOSTLY SORTED ARRAYS
libstdc++ std::sort                           0.103964 sec,  1.00x
clay introsort                                0.155118 sec,  1.49x
clay hybrid quicksort (pointers)              0.257302 sec,  2.47x
libc qsort                                    0.363681 sec,  3.50x
clay median-of-3 quicksort (pointers)         0.411567 sec,  3.96x
clay median-of-3 quicksort (indexing)         0.456013 sec,  4.39x
clay recursive quicksort (pointers)           0.463043 sec,  4.45x
clay recursive quicksort (indexing)           0.526919 sec,  5.07x
clay iterative quicksort (pointers)           0.675513 sec,  6.50x
clay iterative quicksort (indexing)           0.710536 sec,  6.83x
python sort                                   1.305176 sec,  12.55x

LARGE MOSTLY SORTED ARRAYS
libstdc++ std::sort                           0.127504 sec,  1.00x
clay introsort                                0.170017 sec,  1.33x
libc qsort                                    0.450897 sec,  3.54x
clay hybrid quicksort (pointers)              0.571613 sec,  4.48x
clay median-of-3 quicksort (pointers)         0.656219 sec,  5.15x
clay median-of-3 quicksort (indexing)         0.810675 sec,  6.36x
python sort                                   0.811441 sec,  6.36x
clay recursive quicksort (pointers)           2.146228 sec,  16.83x
clay iterative quicksort (pointers)           2.290299 sec,  17.96x
clay recursive quicksort (indexing)           2.449711 sec,  19.21x
clay iterative quicksort (indexing)           2.483939 sec,  19.48x

SMALL MOSTLY REVERSE SORTED ARRAYS
libstdc++ std::sort                           0.200601 sec,  1.00x
clay hybrid quicksort (pointers)              0.260723 sec,  1.30x
clay recursive quicksort (pointers)           0.384019 sec,  1.91x
clay median-of-3 quicksort (pointers)         0.388021 sec,  1.93x
clay introsort                                0.425091 sec,  2.12x
clay median-of-3 quicksort (indexing)         0.436401 sec,  2.18x
clay iterative quicksort (pointers)           0.480382 sec,  2.39x
clay recursive quicksort (indexing)           0.505422 sec,  2.52x
clay iterative quicksort (indexing)           0.570909 sec,  2.85x
libc qsort                                    0.653288 sec,  3.26x
python sort                                   1.464657 sec,  7.30x

LARGE MOSTLY REVERSE SORTED ARRAYS
libstdc++ std::sort                           0.356649 sec,  1.00x
clay hybrid quicksort (pointers)              0.365607 sec,  1.03x
clay median-of-3 quicksort (pointers)         0.417731 sec,  1.17x
clay median-of-3 quicksort (indexing)         0.512194 sec,  1.44x
clay introsort                                0.742459 sec,  2.08x
clay recursive quicksort (pointers)           0.830550 sec,  2.33x
libc qsort                                    0.841278 sec,  2.36x
clay iterative quicksort (pointers)           0.871703 sec,  2.44x
python sort                                   0.888527 sec,  2.49x
clay iterative quicksort (indexing)           1.090704 sec,  3.06x
clay recursive quicksort (indexing)           1.191463 sec,  3.34x

COMBINED RESULTS
libstdc++ std::sort                           1.765658 sec,  1.00x
clay introsort                                2.529235 sec,  1.43x
clay hybrid quicksort (pointers)              2.601236 sec,  1.47x
clay median-of-3 quicksort (pointers)         3.203700 sec,  1.81x
clay median-of-3 quicksort (indexing)         3.716693 sec,  2.10x
libc qsort                                    4.631554 sec,  2.62x
clay recursive quicksort (pointers)           4.973545 sec,  2.82x
clay iterative quicksort (pointers)           5.627530 sec,  3.19x
clay recursive quicksort (indexing)           6.003661 sec,  3.40x
clay iterative quicksort (indexing)           6.345667 sec,  3.59x
python sort                                   11.216609 sec,  6.35x

Annotation: now with clang++

Author: kssreeram
Mode: text
Date: Wed, 7 Jul 2010 01:46:24
Plain Text |
SMALL RANDOM ARRAYS (n = 1000, iterations = 10000)
libstdc++ std::sort                           0.378914 sec,  1.00x
clay introsort                                0.395195 sec,  1.04x
clay hybrid quicksort (pointers)              0.427510 sec,  1.13x
clay recursive quicksort (pointers)           0.432527 sec,  1.14x
clay recursive quicksort (indexing)           0.517894 sec,  1.37x
clay iterative quicksort (pointers)           0.570015 sec,  1.50x
clay median-of-3 quicksort (pointers)         0.571929 sec,  1.51x
clay iterative quicksort (indexing)           0.612528 sec,  1.62x
clay median-of-3 quicksort (indexing)         0.621333 sec,  1.64x
libc qsort                                    0.918535 sec,  2.42x
python sort                                   2.349005 sec,  6.20x

LARGE RANDOM ARRAYS (n = 100000, iterations = 100)
libstdc++ std::sort                           0.605400 sec,  1.00x
clay introsort                                0.624071 sec,  1.03x
clay recursive quicksort (pointers)           0.684918 sec,  1.13x
clay hybrid quicksort (pointers)              0.707288 sec,  1.17x
clay iterative quicksort (pointers)           0.726608 sec,  1.20x
clay median-of-3 quicksort (pointers)         0.774652 sec,  1.28x
clay recursive quicksort (indexing)           0.832752 sec,  1.38x
clay iterative quicksort (indexing)           0.858940 sec,  1.42x
clay median-of-3 quicksort (indexing)         0.869009 sec,  1.44x
libc qsort                                    1.414360 sec,  2.34x
python sort                                   4.376269 sec,  7.23x

SMALL MOSTLY SORTED ARRAYS
libstdc++ std::sort                           0.107612 sec,  1.00x
clay introsort                                0.156378 sec,  1.45x
clay hybrid quicksort (pointers)              0.256645 sec,  2.38x
libc qsort                                    0.359873 sec,  3.34x
clay median-of-3 quicksort (pointers)         0.411827 sec,  3.83x
clay median-of-3 quicksort (indexing)         0.455653 sec,  4.23x
clay recursive quicksort (pointers)           0.462478 sec,  4.30x
clay recursive quicksort (indexing)           0.537994 sec,  5.00x
clay iterative quicksort (pointers)           0.689485 sec,  6.41x
clay iterative quicksort (indexing)           0.709304 sec,  6.59x
python sort                                   1.301875 sec,  12.10x

LARGE MOSTLY SORTED ARRAYS
libstdc++ std::sort                           0.126914 sec,  1.00x
clay introsort                                0.170631 sec,  1.34x
libc qsort                                    0.449047 sec,  3.54x
clay hybrid quicksort (pointers)              0.548087 sec,  4.32x
clay median-of-3 quicksort (pointers)         0.656449 sec,  5.17x
clay median-of-3 quicksort (indexing)         0.810219 sec,  6.38x
python sort                                   0.848090 sec,  6.68x
clay recursive quicksort (pointers)           2.128197 sec,  16.77x
clay iterative quicksort (pointers)           2.287371 sec,  18.02x
clay recursive quicksort (indexing)           2.448226 sec,  19.29x
clay iterative quicksort (indexing)           2.486846 sec,  19.59x

SMALL MOSTLY REVERSE SORTED ARRAYS
libstdc++ std::sort                           0.202803 sec,  1.00x
clay hybrid quicksort (pointers)              0.254505 sec,  1.25x
clay recursive quicksort (pointers)           0.384604 sec,  1.90x
clay median-of-3 quicksort (pointers)         0.387519 sec,  1.91x
clay introsort                                0.422270 sec,  2.08x
clay median-of-3 quicksort (indexing)         0.436219 sec,  2.15x
clay iterative quicksort (pointers)           0.479448 sec,  2.36x
clay recursive quicksort (indexing)           0.494239 sec,  2.44x
clay iterative quicksort (indexing)           0.570598 sec,  2.81x
libc qsort                                    0.645666 sec,  3.18x
python sort                                   1.464955 sec,  7.22x

LARGE MOSTLY REVERSE SORTED ARRAYS
libstdc++ std::sort                           0.313747 sec,  1.00x
clay hybrid quicksort (pointers)              0.365614 sec,  1.17x
clay median-of-3 quicksort (pointers)         0.423310 sec,  1.35x
clay median-of-3 quicksort (indexing)         0.512610 sec,  1.63x
clay introsort                                0.742340 sec,  2.37x
clay recursive quicksort (pointers)           0.829899 sec,  2.65x
libc qsort                                    0.838188 sec,  2.67x
clay iterative quicksort (pointers)           0.875074 sec,  2.79x
python sort                                   0.886645 sec,  2.83x
clay iterative quicksort (indexing)           1.090521 sec,  3.48x
clay recursive quicksort (indexing)           1.190914 sec,  3.80x

COMBINED RESULTS
libstdc++ std::sort                           1.735390 sec,  1.00x
clay introsort                                2.510885 sec,  1.45x
clay hybrid quicksort (pointers)              2.559649 sec,  1.47x
clay median-of-3 quicksort (pointers)         3.225686 sec,  1.86x
clay median-of-3 quicksort (indexing)         3.705043 sec,  2.13x
libc qsort                                    4.625669 sec,  2.67x
clay recursive quicksort (pointers)           4.922623 sec,  2.84x
clay iterative quicksort (pointers)           5.628001 sec,  3.24x
clay recursive quicksort (indexing)           6.022019 sec,  3.47x
clay iterative quicksort (indexing)           6.328737 sec,  3.65x
python sort                                   11.226839 sec,  6.47x

New Annotation

Summary:
Author:
Mode:
Body: