Skip to content

Instantly share code, notes, and snippets.

@sglienke
Last active August 1, 2024 17:21
Show Gist options
  • Save sglienke/91e95984a12be72c228395aa80b10924 to your computer and use it in GitHub Desktop.
Save sglienke/91e95984a12be72c228395aa80b10924 to your computer and use it in GitHub Desktop.
QuickSort, IntroSort, TimSort, PDQSort Benchmark
-------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
-------------------------------------------------------------------------------------
random/QuickSort/count:100 3010 ns 2699 ns 10
random/IntroSort/count:100 1910 ns 1845 ns 10
random/TimSort/count:100 2410 ns 2393 ns 10
random/PDQSort/count:100 1180 ns 1123 ns 10
random/QuickSort/count:1000 45180 ns 45113 ns 10
random/IntroSort/count:1000 22280 ns 22206 ns 10
random/TimSort/count:1000 33990 ns 33900 ns 10
random/PDQSort/count:1000 18220 ns 18140 ns 10
random/QuickSort/count:10000 669310 ns 668144 ns 10
random/IntroSort/count:10000 453710 ns 453557 ns 10
random/TimSort/count:10000 661560 ns 661396 ns 10
random/PDQSort/count:10000 345330 ns 345179 ns 10
random/QuickSort/count:100000 8170780 ns 8050414 ns 10
random/IntroSort/count:100000 5697180 ns 5686643 ns 10
random/TimSort/count:100000 8318970 ns 8300243 ns 10
random/PDQSort/count:100000 4215660 ns 4212514 ns 10
random/QuickSort/count:1000000 93411100 ns 93205360 ns 10
random/IntroSort/count:1000000 68536070 ns 68397893 ns 10
random/TimSort/count:1000000 99625360 ns 99446775 ns 10
random/PDQSort/count:1000000 51709180 ns 51547915 ns 10
few_unique/QuickSort/count:100 2610 ns 2511 ns 10
few_unique/IntroSort/count:100 1790 ns 1728 ns 10
few_unique/TimSort/count:100 2320 ns 2259 ns 10
few_unique/PDQSort/count:100 1140 ns 1075 ns 10
few_unique/QuickSort/count:1000 32920 ns 32854 ns 10
few_unique/IntroSort/count:1000 14450 ns 14388 ns 10
few_unique/TimSort/count:1000 34370 ns 34304 ns 10
few_unique/PDQSort/count:1000 6830 ns 6786 ns 10
few_unique/QuickSort/count:10000 403020 ns 402882 ns 10
few_unique/IntroSort/count:10000 249390 ns 249341 ns 10
few_unique/TimSort/count:10000 440590 ns 440526 ns 10
few_unique/PDQSort/count:10000 100610 ns 100531 ns 10
few_unique/QuickSort/count:100000 4489320 ns 4480205 ns 10
few_unique/IntroSort/count:100000 2937520 ns 2932480 ns 10
few_unique/TimSort/count:100000 4594560 ns 4587908 ns 10
few_unique/PDQSort/count:100000 1109410 ns 1102466 ns 10
few_unique/QuickSort/count:1000000 48175110 ns 48083037 ns 10
few_unique/IntroSort/count:1000000 33770930 ns 33715197 ns 10
few_unique/TimSort/count:1000000 47993850 ns 47912081 ns 10
few_unique/PDQSort/count:1000000 11409030 ns 11378659 ns 10
two_values/QuickSort/count:100 1980 ns 1857 ns 10
two_values/IntroSort/count:100 1350 ns 1259 ns 10
two_values/TimSort/count:100 1980 ns 1878 ns 10
two_values/PDQSort/count:100 800 ns 716 ns 10
two_values/QuickSort/count:1000 20470 ns 20397 ns 10
two_values/IntroSort/count:1000 12540 ns 12408 ns 10
two_values/TimSort/count:1000 14160 ns 14123 ns 10
two_values/PDQSort/count:1000 2120 ns 1984 ns 10
two_values/QuickSort/count:10000 290150 ns 290013 ns 10
two_values/IntroSort/count:10000 176700 ns 176575 ns 10
two_values/TimSort/count:10000 169700 ns 169594 ns 10
two_values/PDQSort/count:10000 27580 ns 27508 ns 10
two_values/QuickSort/count:100000 3377530 ns 3375286 ns 10
two_values/IntroSort/count:100000 2224700 ns 2216828 ns 10
two_values/TimSort/count:100000 1822540 ns 1813560 ns 10
two_values/PDQSort/count:100000 348630 ns 348591 ns 10
two_values/QuickSort/count:1000000 39749250 ns 39684502 ns 10
two_values/IntroSort/count:1000000 26179220 ns 26134964 ns 10
two_values/TimSort/count:1000000 18843120 ns 18802408 ns 10
two_values/PDQSort/count:1000000 3443540 ns 3436633 ns 10
all_equal/QuickSort/count:100 2040 ns 1916 ns 10
all_equal/IntroSort/count:100 1280 ns 1221 ns 10
all_equal/TimSort/count:100 790 ns 659 ns 10
all_equal/PDQSort/count:100 750 ns 665 ns 10
all_equal/QuickSort/count:1000 18290 ns 18138 ns 10
all_equal/IntroSort/count:1000 10700 ns 10632 ns 10
all_equal/TimSort/count:1000 1720 ns 1616 ns 10
all_equal/PDQSort/count:1000 1200 ns 1098 ns 10
all_equal/QuickSort/count:10000 222950 ns 222838 ns 10
all_equal/IntroSort/count:10000 150850 ns 150806 ns 10
all_equal/TimSort/count:10000 11340 ns 11263 ns 10
all_equal/PDQSort/count:10000 6610 ns 6594 ns 10
all_equal/QuickSort/count:100000 2839080 ns 2837301 ns 10
all_equal/IntroSort/count:100000 1970760 ns 1869919 ns 10
all_equal/TimSort/count:100000 105280 ns 105198 ns 10
all_equal/PDQSort/count:100000 54610 ns 54482 ns 10
all_equal/QuickSort/count:1000000 32472180 ns 32412058 ns 10
all_equal/IntroSort/count:1000000 22619990 ns 22574014 ns 10
all_equal/TimSort/count:1000000 1060340 ns 1050862 ns 10
all_equal/PDQSort/count:1000000 419990 ns 419842 ns 10
ascending/QuickSort/count:100 1730 ns 1611 ns 10
ascending/IntroSort/count:100 1300 ns 1204 ns 10
ascending/TimSort/count:100 710 ns 659 ns 10
ascending/PDQSort/count:100 730 ns 637 ns 10
ascending/QuickSort/count:1000 15460 ns 15430 ns 10
ascending/IntroSort/count:1000 10090 ns 10017 ns 10
ascending/TimSort/count:1000 1600 ns 1601 ns 10
ascending/PDQSort/count:1000 980 ns 930 ns 10
ascending/QuickSort/count:10000 184340 ns 183927 ns 10
ascending/IntroSort/count:10000 142280 ns 142093 ns 10
ascending/TimSort/count:10000 11380 ns 11268 ns 10
ascending/PDQSort/count:10000 4260 ns 4201 ns 10
ascending/QuickSort/count:100000 2240550 ns 2238275 ns 10
ascending/IntroSort/count:100000 1788060 ns 1782167 ns 10
ascending/TimSort/count:100000 107460 ns 107385 ns 10
ascending/PDQSort/count:100000 34530 ns 34475 ns 10
ascending/QuickSort/count:1000000 27577530 ns 27239121 ns 10
ascending/IntroSort/count:1000000 20765430 ns 20749293 ns 10
ascending/TimSort/count:1000000 1073020 ns 1072722 ns 10
ascending/PDQSort/count:1000000 330860 ns 330681 ns 10
slightly_scrambled/QuickSort/count:100 1790 ns 1691 ns 10
slightly_scrambled/IntroSort/count:100 1370 ns 1272 ns 10
slightly_scrambled/TimSort/count:100 1980 ns 1888 ns 10
slightly_scrambled/PDQSort/count:100 990 ns 862 ns 10
slightly_scrambled/QuickSort/count:1000 17060 ns 16991 ns 10
slightly_scrambled/IntroSort/count:1000 12420 ns 12346 ns 10
slightly_scrambled/TimSort/count:1000 15650 ns 15594 ns 10
slightly_scrambled/PDQSort/count:1000 4850 ns 4759 ns 10
slightly_scrambled/QuickSort/count:10000 233570 ns 233358 ns 10
slightly_scrambled/IntroSort/count:10000 186640 ns 186529 ns 10
slightly_scrambled/TimSort/count:10000 205710 ns 205562 ns 10
slightly_scrambled/PDQSort/count:10000 76930 ns 76926 ns 10
slightly_scrambled/QuickSort/count:100000 2924900 ns 2923354 ns 10
slightly_scrambled/IntroSort/count:100000 2499240 ns 2410508 ns 10
slightly_scrambled/TimSort/count:100000 2334920 ns 2331850 ns 10
slightly_scrambled/PDQSort/count:100000 958670 ns 958338 ns 10
slightly_scrambled/QuickSort/count:1000000 34493420 ns 34398051 ns 10
slightly_scrambled/IntroSort/count:1000000 29433600 ns 29378194 ns 10
slightly_scrambled/TimSort/count:1000000 25438240 ns 25378970 ns 10
slightly_scrambled/PDQSort/count:1000000 11699900 ns 11675961 ns 10
sorted_blocks/QuickSort/count:100 2250 ns 2135 ns 10
sorted_blocks/IntroSort/count:100 1900 ns 1787 ns 10
sorted_blocks/TimSort/count:100 1920 ns 1813 ns 10
sorted_blocks/PDQSort/count:100 1050 ns 988 ns 10
sorted_blocks/QuickSort/count:1000 25180 ns 25111 ns 10
sorted_blocks/IntroSort/count:1000 15630 ns 15570 ns 10
sorted_blocks/TimSort/count:1000 2670 ns 2580 ns 10
sorted_blocks/PDQSort/count:1000 4200 ns 4135 ns 10
sorted_blocks/QuickSort/count:10000 357960 ns 357829 ns 10
sorted_blocks/IntroSort/count:10000 211380 ns 211282 ns 10
sorted_blocks/TimSort/count:10000 28600 ns 28546 ns 10
sorted_blocks/PDQSort/count:10000 67480 ns 67434 ns 10
sorted_blocks/QuickSort/count:100000 3984940 ns 3972979 ns 10
sorted_blocks/IntroSort/count:100000 2908170 ns 2904903 ns 10
sorted_blocks/TimSort/count:100000 389720 ns 389535 ns 10
sorted_blocks/PDQSort/count:100000 951470 ns 951251 ns 10
sorted_blocks/QuickSort/count:1000000 51461920 ns 51353187 ns 10
sorted_blocks/IntroSort/count:1000000 34931790 ns 34854211 ns 10
sorted_blocks/TimSort/count:1000000 5792440 ns 5752386 ns 10
sorted_blocks/PDQSort/count:1000000 13597290 ns 13508590 ns 10
single_big_swap/QuickSort/count:100 1830 ns 1693 ns 10
single_big_swap/IntroSort/count:100 1820 ns 1748 ns 10
single_big_swap/TimSort/count:100 1060 ns 943 ns 10
single_big_swap/PDQSort/count:100 910 ns 867 ns 10
single_big_swap/QuickSort/count:1000 16320 ns 16204 ns 10
single_big_swap/IntroSort/count:1000 17860 ns 17801 ns 10
single_big_swap/TimSort/count:1000 1960 ns 1878 ns 10
single_big_swap/PDQSort/count:1000 2810 ns 2757 ns 10
single_big_swap/QuickSort/count:10000 191200 ns 191120 ns 10
single_big_swap/IntroSort/count:10000 241380 ns 241189 ns 10
single_big_swap/TimSort/count:10000 12610 ns 12580 ns 10
single_big_swap/PDQSort/count:10000 18410 ns 18342 ns 10
single_big_swap/QuickSort/count:100000 2313120 ns 2310719 ns 10
single_big_swap/IntroSort/count:100000 3372130 ns 3267539 ns 10
single_big_swap/TimSort/count:100000 125360 ns 125275 ns 10
single_big_swap/PDQSort/count:100000 180220 ns 180095 ns 10
single_big_swap/QuickSort/count:1000000 28239080 ns 28165506 ns 10
single_big_swap/IntroSort/count:1000000 39090790 ns 39013642 ns 10
single_big_swap/TimSort/count:1000000 1708620 ns 1708098 ns 10
single_big_swap/PDQSort/count:1000000 2226640 ns 2219010 ns 10
descending/QuickSort/count:100 1810 ns 1652 ns 10
descending/IntroSort/count:100 1340 ns 1239 ns 10
descending/TimSort/count:100 750 ns 682 ns 10
descending/PDQSort/count:100 660 ns 611 ns 10
descending/QuickSort/count:1000 15230 ns 15167 ns 10
descending/IntroSort/count:1000 10310 ns 10219 ns 10
descending/TimSort/count:1000 1680 ns 1620 ns 10
descending/PDQSort/count:1000 1100 ns 1004 ns 10
descending/QuickSort/count:10000 183780 ns 183395 ns 10
descending/IntroSort/count:10000 143430 ns 143300 ns 10
descending/TimSort/count:10000 11300 ns 11246 ns 10
descending/PDQSort/count:10000 4240 ns 4175 ns 10
descending/QuickSort/count:100000 2254190 ns 2250568 ns 10
descending/IntroSort/count:100000 1783260 ns 1778381 ns 10
descending/TimSort/count:100000 107430 ns 107340 ns 10
descending/PDQSort/count:100000 36770 ns 36777 ns 10
descending/QuickSort/count:1000000 27235190 ns 27171924 ns 10
descending/IntroSort/count:1000000 20885030 ns 20851845 ns 10
descending/TimSort/count:1000000 1069670 ns 1069332 ns 10
descending/PDQSort/count:1000000 329210 ns 328959 ns 10
pipe_organ/QuickSort/count:100 2010 ns 1803 ns 10
pipe_organ/IntroSort/count:100 1320 ns 1216 ns 10
pipe_organ/TimSort/count:100 730 ns 677 ns 10
pipe_organ/PDQSort/count:100 710 ns 621 ns 10
pipe_organ/QuickSort/count:1000 16430 ns 16309 ns 10
pipe_organ/IntroSort/count:1000 10540 ns 10359 ns 10
pipe_organ/TimSort/count:1000 1720 ns 1645 ns 10
pipe_organ/PDQSort/count:1000 1040 ns 987 ns 10
pipe_organ/QuickSort/count:10000 203160 ns 203050 ns 10
pipe_organ/IntroSort/count:10000 146480 ns 146352 ns 10
pipe_organ/TimSort/count:10000 11300 ns 11260 ns 10
pipe_organ/PDQSort/count:10000 4330 ns 4224 ns 10
pipe_organ/QuickSort/count:100000 2524980 ns 2524266 ns 10
pipe_organ/IntroSort/count:100000 1814700 ns 1811756 ns 10
pipe_organ/TimSort/count:100000 107820 ns 107688 ns 10
pipe_organ/PDQSort/count:100000 37370 ns 37367 ns 10
pipe_organ/QuickSort/count:1000000 29791430 ns 29736314 ns 10
pipe_organ/IntroSort/count:1000000 21670990 ns 21628012 ns 10
pipe_organ/TimSort/count:1000000 1073750 ns 1069334 ns 10
pipe_organ/PDQSort/count:1000000 367470 ns 363636 ns 10
push_front/QuickSort/count:100 2290 ns 2038 ns 10
push_front/IntroSort/count:100 1830 ns 1754 ns 10
push_front/TimSort/count:100 920 ns 846 ns 10
push_front/PDQSort/count:100 1040 ns 977 ns 10
push_front/QuickSort/count:1000 18940 ns 18839 ns 10
push_front/IntroSort/count:1000 18260 ns 18221 ns 10
push_front/TimSort/count:1000 1890 ns 1804 ns 10
push_front/PDQSort/count:1000 4940 ns 4886 ns 10
push_front/QuickSort/count:10000 231820 ns 226000 ns 10
push_front/IntroSort/count:10000 255730 ns 255536 ns 10
push_front/TimSort/count:10000 11980 ns 11905 ns 10
push_front/PDQSort/count:10000 39070 ns 38992 ns 10
push_front/QuickSort/count:100000 2708810 ns 2699206 ns 10
push_front/IntroSort/count:100000 3376610 ns 3364222 ns 10
push_front/TimSort/count:100000 114420 ns 114315 ns 10
push_front/PDQSort/count:100000 365960 ns 365760 ns 10
push_front/QuickSort/count:1000000 30428630 ns 30319703 ns 10
push_front/IntroSort/count:1000000 39321890 ns 39206213 ns 10
push_front/TimSort/count:1000000 1234870 ns 1179578 ns 10
push_front/PDQSort/count:1000000 4028830 ns 4001045 ns 10
push_middle/QuickSort/count:100 2110 ns 1898 ns 10
push_middle/IntroSort/count:100 1560 ns 1451 ns 10
push_middle/TimSort/count:100 950 ns 833 ns 10
push_middle/PDQSort/count:100 850 ns 763 ns 10
push_middle/QuickSort/count:1000 17240 ns 17169 ns 10
push_middle/IntroSort/count:1000 13720 ns 13609 ns 10
push_middle/TimSort/count:1000 1860 ns 1810 ns 10
push_middle/PDQSort/count:1000 1660 ns 1573 ns 10
push_middle/QuickSort/count:10000 202660 ns 202546 ns 10
push_middle/IntroSort/count:10000 191220 ns 191132 ns 10
push_middle/TimSort/count:10000 11850 ns 11704 ns 10
push_middle/PDQSort/count:10000 8850 ns 8769 ns 10
push_middle/QuickSort/count:100000 2475910 ns 2472280 ns 10
push_middle/IntroSort/count:100000 2470900 ns 2468376 ns 10
push_middle/TimSort/count:100000 112030 ns 111879 ns 10
push_middle/PDQSort/count:100000 76840 ns 76822 ns 10
push_middle/QuickSort/count:1000000 29106700 ns 28962215 ns 10
push_middle/IntroSort/count:1000000 29782310 ns 29581195 ns 10
push_middle/TimSort/count:1000000 1144710 ns 1128358 ns 10
push_middle/PDQSort/count:1000000 790820 ns 790464 ns 10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment