Pdq排序算法的C#实现,性能较C#内置的排序算法要好不少,应该是目前综合性能最好的排序算法. 主要是参照 https://gist.github.com/hez2010/6b52929ee1755788c34818972c46aefb 实现的
| Method | size | Mean | Error | StdDev | Median | Ratio | RatioSD | Allocated | Alloc Ratio |
|---|---|---|---|---|---|---|---|---|---|
| BuildInSort_AllEqual | 10 | 1,985.0 ns | 153.98 ns | 454.02 ns | 2,100.0 ns | 1.00 | 0.00 | 728 B | 1.00 |
| PdqSort_Span_AllEqual | 10 | 245.0 ns | 34.21 ns | 100.88 ns | 300.0 ns | 0.13 | 0.07 | 640 B | 0.88 |
| PdqSort_Unguarded_AllEqual | 10 | 185.0 ns | 45.32 ns | 133.62 ns | 200.0 ns | 0.10 | 0.08 | 640 B | 0.88 |
| PdqSort_Unmanaged_AllEqual | 10 | 234.0 ns | 41.32 ns | 121.83 ns | 250.0 ns | 0.13 | 0.07 | 640 B | 0.88 |
| BuildInSort_Random | 10 | 2,005.0 ns | 154.44 ns | 455.36 ns | 2,200.0 ns | 1.07 | 0.38 | 728 B | 1.00 |
| PdqSort_Span_Random | 10 | 408.1 ns | 56.11 ns | 164.55 ns | 500.0 ns | 0.22 | 0.11 | 640 B | 0.88 |
| PdqSort_Unguarded_Random | 10 | 398.0 ns | 40.04 ns | 118.05 ns | 400.0 ns | 0.22 | 0.10 | 640 B | 0.88 |
| PdqSort_Unmanaged_Random | 10 | 280.0 ns | 59.82 ns | 176.38 ns | 300.0 ns | 0.15 | 0.11 | 640 B | 0.88 |
| BuildInSort_RandomNear | 10 | 1,931.0 ns | 161.73 ns | 476.88 ns | 2,050.0 ns | 1.03 | 0.37 | 728 B | 1.00 |
| PdqSort_Span_RandomNear | 10 | 196.0 ns | 52.79 ns | 155.65 ns | 200.0 ns | 0.10 | 0.09 | 640 B | 0.88 |
| PdqSort_Unguarded_RandomNear | 10 | 303.0 ns | 51.80 ns | 152.72 ns | 300.0 ns | 0.17 | 0.10 | 640 B | 0.88 |
| PdqSort_Unmanaged_RandomNear | 10 | 266.0 ns | 40.11 ns | 118.25 ns | 200.0 ns | 0.14 | 0.07 | 640 B | 0.88 |
| BuildInSort_Sequence | 10 | 1,700.5 ns | 154.68 ns | 453.64 ns | 1,450.0 ns | 0.91 | 0.38 | 728 B | 1.00 |
| PdqSort_Span_Sequence | 10 | 232.0 ns | 42.27 ns | 124.62 ns | 200.0 ns | 0.12 | 0.07 | 640 B | 0.88 |
| PdqSort_Unguarded_Sequence | 10 | 159.0 ns | 43.94 ns | 129.56 ns | 100.0 ns | 0.09 | 0.08 | 640 B | 0.88 |
| PdqSort_Unmanaged_Sequence | 10 | 250.5 ns | 52.32 ns | 153.45 ns | 300.0 ns | 0.13 | 0.09 | 640 B | 0.88 |
| BuildInSort_Reverse | 10 | 2,529.8 ns | 210.35 ns | 600.15 ns | 2,600.0 ns | 1.36 | 0.55 | 728 B | 1.00 |
| PdqSort_Span_Reverse | 10 | 426.0 ns | 54.46 ns | 160.57 ns | 450.0 ns | 0.23 | 0.11 | 640 B | 0.88 |
| PdqSort_Unguarded_Reverse | 10 | 290.5 ns | 29.81 ns | 80.09 ns | 300.0 ns | 0.15 | 0.06 | 640 B | 0.88 |
| PdqSort_Unmanaged_Reverse | 10 | 188.8 ns | 19.85 ns | 53.66 ns | 150.0 ns | 0.10 | 0.05 | 640 B | 0.88 |
| BuildInSort_Peek | 10 | 1,736.4 ns | 94.26 ns | 259.61 ns | 1,700.0 ns | 0.92 | 0.29 | 728 B | 1.00 |
| PdqSort_Span_Peek | 10 | 370.0 ns | 58.94 ns | 173.79 ns | 400.0 ns | 0.20 | 0.11 | 640 B | 0.88 |
| PdqSort_Unguarded_Peek | 10 | 295.0 ns | 58.32 ns | 171.96 ns | 200.0 ns | 0.17 | 0.13 | 640 B | 0.88 |
| PdqSort_Unmanaged_Peek | 10 | 181.3 ns | 15.52 ns | 39.23 ns | 200.0 ns | 0.09 | 0.03 | 640 B | 0.88 |
| BuildInSort_ReversePeek | 10 | 2,007.0 ns | 155.55 ns | 458.64 ns | 1,800.0 ns | 1.08 | 0.39 | 728 B | 1.00 |
| PdqSort_Span_ReversePeek | 10 | 182.9 ns | 23.74 ns | 62.96 ns | 150.0 ns | 0.09 | 0.04 | 640 B | 0.88 |
| PdqSort_Unguarded_ReversePeek | 10 | 187.3 ns | 21.67 ns | 56.31 ns | 200.0 ns | 0.10 | 0.04 | 640 B | 0.88 |
| PdqSort_Unmanaged_ReversePeek | 10 | 170.4 ns | 21.17 ns | 55.78 ns | 200.0 ns | 0.09 | 0.04 | 640 B | 0.88 |
| BuildInSort_AllEqual | 100 | 3,883.0 ns | 154.03 ns | 454.17 ns | 3,700.0 ns | 1.00 | 0.00 | 728 B | 1.00 |
| PdqSort_Span_AllEqual | 100 | 603.4 ns | 20.92 ns | 57.63 ns | 600.0 ns | 0.16 | 0.02 | 640 B | 0.88 |
| PdqSort_Unguarded_AllEqual | 100 | 555.3 ns | 20.97 ns | 56.71 ns | 600.0 ns | 0.14 | 0.02 | 640 B | 0.88 |
| PdqSort_Unmanaged_AllEqual | 100 | 668.0 ns | 48.42 ns | 142.76 ns | 600.0 ns | 0.17 | 0.04 | 640 B | 0.88 |
| BuildInSort_Random | 100 | 5,637.5 ns | 113.91 ns | 177.35 ns | 5,550.0 ns | 1.44 | 0.15 | 728 B | 1.00 |
| PdqSort_Span_Random | 100 | 2,111.2 ns | 146.84 ns | 406.88 ns | 2,000.0 ns | 0.55 | 0.13 | 640 B | 0.88 |
| PdqSort_Unguarded_Random | 100 | 2,045.1 ns | 141.18 ns | 395.89 ns | 1,900.0 ns | 0.53 | 0.11 | 640 B | 0.88 |
| PdqSort_Unmanaged_Random | 100 | 2,284.8 ns | 129.17 ns | 364.33 ns | 2,200.0 ns | 0.60 | 0.11 | 640 B | 0.88 |
| BuildInSort_RandomNear | 100 | 4,626.9 ns | 81.50 ns | 111.56 ns | 4,600.0 ns | 1.18 | 0.14 | 728 B | 1.00 |
| PdqSort_Span_RandomNear | 100 | 1,701.1 ns | 157.84 ns | 442.59 ns | 1,500.0 ns | 0.44 | 0.13 | 640 B | 0.88 |
| PdqSort_Unguarded_RandomNear | 100 | 2,462.0 ns | 318.15 ns | 938.06 ns | 2,150.0 ns | 0.64 | 0.26 | 640 B | 0.88 |
| PdqSort_Unmanaged_RandomNear | 100 | 1,869.6 ns | 114.16 ns | 321.99 ns | 1,800.0 ns | 0.49 | 0.09 | 640 B | 0.88 |
| BuildInSort_Sequence | 100 | 3,602.2 ns | 75.41 ns | 145.28 ns | 3,600.0 ns | 0.94 | 0.11 | 728 B | 1.00 |
| PdqSort_Span_Sequence | 100 | 737.0 ns | 60.72 ns | 179.03 ns | 700.0 ns | 0.19 | 0.05 | 640 B | 0.88 |
| PdqSort_Unguarded_Sequence | 100 | 614.0 ns | 58.05 ns | 171.16 ns | 650.0 ns | 0.16 | 0.05 | 640 B | 0.88 |
| PdqSort_Unmanaged_Sequence | 100 | 571.4 ns | 17.74 ns | 45.47 ns | 600.0 ns | 0.15 | 0.02 | 640 B | 0.88 |
| BuildInSort_Reverse | 100 | 5,519.7 ns | 155.98 ns | 457.47 ns | 5,650.0 ns | 1.44 | 0.21 | 728 B | 1.00 |
| PdqSort_Span_Reverse | 100 | 825.6 ns | 26.37 ns | 69.94 ns | 800.0 ns | 0.21 | 0.03 | 640 B | 0.88 |
| PdqSort_Unguarded_Reverse | 100 | 968.0 ns | 77.86 ns | 229.57 ns | 850.0 ns | 0.25 | 0.07 | 640 B | 0.88 |
| PdqSort_Unmanaged_Reverse | 100 | 1,007.1 ns | 63.93 ns | 187.49 ns | 1,100.0 ns | 0.26 | 0.05 | 640 B | 0.88 |
| BuildInSort_Peek | 100 | 7,894.0 ns | 181.00 ns | 533.68 ns | 7,700.0 ns | 2.06 | 0.26 | 728 B | 1.00 |
| PdqSort_Span_Peek | 100 | 2,377.0 ns | 49.11 ns | 134.42 ns | 2,400.0 ns | 0.62 | 0.08 | 640 B | 0.88 |
| PdqSort_Unguarded_Peek | 100 | 2,408.6 ns | 101.67 ns | 288.42 ns | 2,300.0 ns | 0.63 | 0.10 | 640 B | 0.88 |
| PdqSort_Unmanaged_Peek | 100 | 2,559.5 ns | 132.97 ns | 381.51 ns | 2,550.0 ns | 0.67 | 0.12 | 640 B | 0.88 |
| BuildInSort_ReversePeek | 100 | 7,176.9 ns | 130.76 ns | 109.19 ns | 7,200.0 ns | 1.77 | 0.26 | 728 B | 1.00 |
| PdqSort_Span_ReversePeek | 100 | 2,553.4 ns | 105.02 ns | 289.25 ns | 2,500.0 ns | 0.67 | 0.10 | 640 B | 0.88 |
| PdqSort_Unguarded_ReversePeek | 100 | 2,262.0 ns | 76.68 ns | 216.28 ns | 2,200.0 ns | 0.59 | 0.08 | 640 B | 0.88 |
| PdqSort_Unmanaged_ReversePeek | 100 | 2,364.9 ns | 100.19 ns | 285.85 ns | 2,250.0 ns | 0.62 | 0.10 | 640 B | 0.88 |
| BuildInSort_AllEqual | 1000 | 36,316.7 ns | 653.62 ns | 611.40 ns | 36,050.0 ns | 1.00 | 0.00 | 728 B | 1.00 |
| PdqSort_Span_AllEqual | 1000 | 3,333.8 ns | 67.45 ns | 172.91 ns | 3,300.0 ns | 0.09 | 0.01 | 640 B | 0.88 |
| PdqSort_Unguarded_AllEqual | 1000 | 3,357.1 ns | 72.01 ns | 210.06 ns | 3,400.0 ns | 0.10 | 0.01 | 640 B | 0.88 |
| PdqSort_Unmanaged_AllEqual | 1000 | 3,313.0 ns | 74.47 ns | 219.57 ns | 3,200.0 ns | 0.09 | 0.01 | 640 B | 0.88 |
| BuildInSort_Random | 1000 | 73,506.7 ns | 985.18 ns | 921.54 ns | 73,100.0 ns | 2.02 | 0.05 | 728 B | 1.00 |
| PdqSort_Span_Random | 1000 | 47,893.2 ns | 945.73 ns | 2,713.47 ns | 47,350.0 ns | 1.35 | 0.09 | 640 B | 0.88 |
| PdqSort_Unguarded_Random | 1000 | 44,463.6 ns | 1,225.90 ns | 3,595.36 ns | 44,100.0 ns | 1.30 | 0.11 | 640 B | 0.88 |
| PdqSort_Unmanaged_Random | 1000 | 45,560.8 ns | 908.62 ns | 2,279.54 ns | 45,300.0 ns | 1.26 | 0.06 | 640 B | 0.88 |
| BuildInSort_RandomNear | 1000 | 69,250.0 ns | 1,339.69 ns | 1,187.60 ns | 69,400.0 ns | 1.91 | 0.03 | 728 B | 1.00 |
| PdqSort_Span_RandomNear | 1000 | 41,284.4 ns | 820.87 ns | 1,902.48 ns | 41,250.0 ns | 1.16 | 0.05 | 640 B | 0.88 |
| PdqSort_Unguarded_RandomNear | 1000 | 39,553.7 ns | 952.69 ns | 2,733.43 ns | 39,400.0 ns | 1.13 | 0.09 | 640 B | 0.88 |
| PdqSort_Unmanaged_RandomNear | 1000 | 40,035.3 ns | 787.18 ns | 1,271.16 ns | 39,750.0 ns | 1.09 | 0.05 | 640 B | 0.88 |
| BuildInSort_Sequence | 1000 | 38,630.0 ns | 619.69 ns | 579.66 ns | 38,250.0 ns | 1.06 | 0.03 | 728 B | 1.00 |
| PdqSort_Span_Sequence | 1000 | 3,741.0 ns | 76.47 ns | 172.60 ns | 3,700.0 ns | 0.10 | 0.01 | 640 B | 0.88 |
| PdqSort_Unguarded_Sequence | 1000 | 3,804.8 ns | 77.34 ns | 92.07 ns | 3,800.0 ns | 0.10 | 0.00 | 640 B | 0.88 |
| PdqSort_Unmanaged_Sequence | 1000 | 3,661.5 ns | 60.64 ns | 50.64 ns | 3,700.0 ns | 0.10 | 0.00 | 640 B | 0.88 |
| BuildInSort_Reverse | 1000 | 61,630.8 ns | 443.75 ns | 370.55 ns | 61,500.0 ns | 1.70 | 0.03 | 728 B | 1.00 |
| PdqSort_Span_Reverse | 1000 | 5,566.7 ns | 112.66 ns | 188.22 ns | 5,500.0 ns | 0.15 | 0.01 | 640 B | 0.88 |
| PdqSort_Unguarded_Reverse | 1000 | 5,582.5 ns | 110.98 ns | 197.27 ns | 5,600.0 ns | 0.15 | 0.01 | 640 B | 0.88 |
| PdqSort_Unmanaged_Reverse | 1000 | 5,938.8 ns | 119.68 ns | 284.42 ns | 5,800.0 ns | 0.17 | 0.01 | 640 B | 0.88 |
| BuildInSort_Peek | 1000 | 125,886.7 ns | 2,477.65 ns | 2,317.59 ns | 125,700.0 ns | 3.47 | 0.08 | 728 B | 1.00 |
| PdqSort_Span_Peek | 1000 | 32,371.4 ns | 1,282.55 ns | 3,741.24 ns | 31,200.0 ns | 0.92 | 0.08 | 640 B | 0.88 |
| PdqSort_Unguarded_Peek | 1000 | 30,162.5 ns | 670.42 ns | 1,846.54 ns | 29,750.0 ns | 0.87 | 0.08 | 640 B | 0.88 |
| PdqSort_Unmanaged_Peek | 1000 | 33,208.8 ns | 665.49 ns | 1,741.47 ns | 32,650.0 ns | 0.94 | 0.06 | 640 B | 0.88 |
| BuildInSort_ReversePeek | 1000 | 121,592.9 ns | 1,825.65 ns | 1,618.39 ns | 121,250.0 ns | 3.35 | 0.06 | 728 B | 1.00 |
| PdqSort_Span_ReversePeek | 1000 | 30,927.4 ns | 866.28 ns | 2,485.51 ns | 30,300.0 ns | 0.90 | 0.06 | 640 B | 0.88 |
| PdqSort_Unguarded_ReversePeek | 1000 | 28,092.6 ns | 544.81 ns | 1,435.25 ns | 27,700.0 ns | 0.80 | 0.05 | 640 B | 0.88 |
| PdqSort_Unmanaged_ReversePeek | 1000 | 30,848.6 ns | 584.98 ns | 1,445.93 ns | 30,550.0 ns | 0.87 | 0.05 | 640 B | 0.88 |
| BuildInSort_AllEqual | 10000 | 541,792.9 ns | 2,778.54 ns | 2,463.10 ns | 541,950.0 ns | 1.00 | 0.00 | 728 B | 1.00 |
| PdqSort_Span_AllEqual | 10000 | 30,027.3 ns | 597.55 ns | 947.78 ns | 30,300.0 ns | 0.06 | 0.00 | 640 B | 0.88 |
| PdqSort_Unguarded_AllEqual | 10000 | 29,289.0 ns | 585.33 ns | 1,725.85 ns | 29,050.0 ns | 0.06 | 0.00 | 640 B | 0.88 |
| PdqSort_Unmanaged_AllEqual | 10000 | 28,690.6 ns | 548.76 ns | 854.35 ns | 28,250.0 ns | 0.05 | 0.00 | 640 B | 0.88 |
| BuildInSort_Random | 10000 | 978,046.7 ns | 14,340.67 ns | 13,414.27 ns | 978,200.0 ns | 1.80 | 0.03 | 728 B | 1.00 |
| PdqSort_Span_Random | 10000 | 683,753.3 ns | 5,737.02 ns | 5,366.41 ns | 685,300.0 ns | 1.26 | 0.01 | 640 B | 0.88 |
| PdqSort_Unguarded_Random | 10000 | 654,223.1 ns | 10,565.10 ns | 8,822.33 ns | 656,900.0 ns | 1.21 | 0.02 | 640 B | 0.88 |
| PdqSort_Unmanaged_Random | 10000 | 643,553.3 ns | 7,921.76 ns | 7,410.02 ns | 642,600.0 ns | 1.19 | 0.01 | 640 B | 0.88 |
| BuildInSort_RandomNear | 10000 | 983,160.0 ns | 7,924.12 ns | 7,412.23 ns | 983,300.0 ns | 1.81 | 0.02 | 728 B | 1.00 |
| PdqSort_Span_RandomNear | 10000 | 666,032.6 ns | 14,241.04 ns | 40,860.23 ns | 647,800.0 ns | 1.20 | 0.04 | 640 B | 0.88 |
| PdqSort_Unguarded_RandomNear | 10000 | 606,360.0 ns | 5,984.39 ns | 5,597.81 ns | 605,100.0 ns | 1.12 | 0.01 | 640 B | 0.88 |
| PdqSort_Unmanaged_RandomNear | 10000 | 607,440.0 ns | 3,991.44 ns | 3,733.59 ns | 607,700.0 ns | 1.12 | 0.01 | 640 B | 0.88 |
| BuildInSort_Sequence | 10000 | 559,588.5 ns | 4,255.77 ns | 3,553.76 ns | 559,650.0 ns | 1.03 | 0.01 | 728 B | 1.00 |
| PdqSort_Span_Sequence | 10000 | 33,446.2 ns | 389.94 ns | 325.62 ns | 33,300.0 ns | 0.06 | 0.00 | 640 B | 0.88 |
| PdqSort_Unguarded_Sequence | 10000 | 33,853.3 ns | 600.51 ns | 561.72 ns | 33,900.0 ns | 0.06 | 0.00 | 640 B | 0.88 |
| PdqSort_Unmanaged_Sequence | 10000 | 35,075.0 ns | 57.93 ns | 45.23 ns | 35,100.0 ns | 0.06 | 0.00 | 640 B | 0.88 |
| BuildInSort_Reverse | 10000 | 957,376.9 ns | 2,753.97 ns | 2,299.69 ns | 957,000.0 ns | 1.77 | 0.01 | 728 B | 1.00 |
| PdqSort_Span_Reverse | 10000 | 50,308.3 ns | 951.39 ns | 1,237.08 ns | 50,500.0 ns | 0.09 | 0.00 | 640 B | 0.88 |
| PdqSort_Unguarded_Reverse | 10000 | 51,484.4 ns | 984.79 ns | 1,533.20 ns | 51,000.0 ns | 0.09 | 0.00 | 640 B | 0.88 |
| PdqSort_Unmanaged_Reverse | 10000 | 52,000.0 ns | 856.61 ns | 715.31 ns | 51,600.0 ns | 0.10 | 0.00 | 640 B | 0.88 |
| BuildInSort_Peek | 10000 | 2,128,200.0 ns | 21,494.76 ns | 17,949.09 ns | 2,122,000.0 ns | 3.93 | 0.04 | 728 B | 1.00 |
| PdqSort_Span_Peek | 10000 | 442,473.9 ns | 8,669.52 ns | 10,964.17 ns | 441,700.0 ns | 0.82 | 0.02 | 640 B | 0.88 |
| PdqSort_Unguarded_Peek | 10000 | 440,691.7 ns | 8,810.07 ns | 11,455.58 ns | 441,050.0 ns | 0.82 | 0.02 | 640 B | 0.88 |
| PdqSort_Unmanaged_Peek | 10000 | 451,606.7 ns | 7,565.06 ns | 7,076.37 ns | 453,300.0 ns | 0.83 | 0.01 | 640 B | 0.88 |
| BuildInSort_ReversePeek | 10000 | 2,118,980.0 ns | 37,597.97 ns | 35,169.17 ns | 2,108,200.0 ns | 3.91 | 0.07 | 728 B | 1.00 |
| PdqSort_Span_ReversePeek | 10000 | 451,296.7 ns | 8,832.56 ns | 13,220.16 ns | 453,750.0 ns | 0.83 | 0.04 | 640 B | 0.88 |
| PdqSort_Unguarded_ReversePeek | 10000 | 438,084.5 ns | 8,649.37 ns | 12,678.14 ns | 438,550.0 ns | 0.81 | 0.03 | 640 B | 0.88 |
| PdqSort_Unmanaged_ReversePeek | 10000 | 452,613.3 ns | 6,446.85 ns | 6,030.38 ns | 452,600.0 ns | 0.84 | 0.01 | 640 B | 0.88 |
| BuildInSort_AllEqual | 100000 | 6,601,964.3 ns | 80,270.17 ns | 71,157.42 ns | 6,610,000.0 ns | 1.00 | 0.00 | 728 B | 1.00 |
| PdqSort_Span_AllEqual | 100000 | 307,949.0 ns | 6,154.70 ns | 12,291.60 ns | 309,900.0 ns | 0.05 | 0.00 | 640 B | 0.88 |
| PdqSort_Unguarded_AllEqual | 100000 | 294,489.7 ns | 7,838.76 ns | 22,741.66 ns | 290,300.0 ns | 0.04 | 0.00 | 640 B | 0.88 |
| PdqSort_Unmanaged_AllEqual | 100000 | 301,518.6 ns | 6,020.90 ns | 14,655.71 ns | 294,900.0 ns | 0.05 | 0.00 | 640 B | 0.88 |
| BuildInSort_Random | 100000 | 8,319,869.4 ns | 131,493.35 ns | 262,606.44 ns | 8,330,200.0 ns | 1.25 | 0.04 | 728 B | 1.00 |
| PdqSort_Span_Random | 100000 | 8,619,546.7 ns | 118,234.97 ns | 110,597.06 ns | 8,605,300.0 ns | 1.31 | 0.03 | 640 B | 0.88 |
| PdqSort_Unguarded_Random | 100000 | 6,872,020.0 ns | 105,236.89 ns | 200,224.11 ns | 6,863,500.0 ns | 1.05 | 0.04 | 640 B | 0.88 |
| PdqSort_Unmanaged_Random | 100000 | 6,511,947.8 ns | 54,243.01 ns | 104,507.87 ns | 6,525,000.0 ns | 0.99 | 0.02 | 640 B | 0.88 |
| BuildInSort_RandomNear | 100000 | 8,104,440.0 ns | 127,809.82 ns | 227,181.83 ns | 8,091,000.0 ns | 1.24 | 0.04 | 728 B | 1.00 |
| PdqSort_Span_RandomNear | 100000 | 6,476,084.4 ns | 73,769.01 ns | 140,353.21 ns | 6,472,500.0 ns | 1.00 | 0.02 | 640 B | 0.88 |
| PdqSort_Unguarded_RandomNear | 100000 | 7,547,343.3 ns | 145,008.73 ns | 135,641.26 ns | 7,526,650.0 ns | 1.14 | 0.03 | 640 B | 0.88 |
| PdqSort_Unmanaged_RandomNear | 100000 | 6,028,453.1 ns | 54,223.43 ns | 108,290.05 ns | 6,035,400.0 ns | 0.92 | 0.01 | 640 B | 0.88 |
| BuildInSort_Sequence | 100000 | 7,006,316.7 ns | 95,834.96 ns | 89,644.08 ns | 7,023,550.0 ns | 1.06 | 0.02 | 728 B | 1.00 |
| PdqSort_Span_Sequence | 100000 | 349,832.0 ns | 6,865.81 ns | 13,869.26 ns | 345,850.0 ns | 0.05 | 0.00 | 640 B | 0.88 |
| PdqSort_Unguarded_Sequence | 100000 | 357,285.2 ns | 7,065.03 ns | 9,904.18 ns | 355,000.0 ns | 0.05 | 0.00 | 640 B | 0.88 |
| PdqSort_Unmanaged_Sequence | 100000 | 356,568.4 ns | 6,941.15 ns | 7,715.07 ns | 353,100.0 ns | 0.05 | 0.00 | 640 B | 0.88 |
| BuildInSort_Reverse | 100000 | 6,397,096.0 ns | 90,785.32 ns | 121,195.80 ns | 6,374,600.0 ns | 0.97 | 0.03 | 728 B | 1.00 |
| PdqSort_Span_Reverse | 100000 | 511,292.1 ns | 9,998.41 ns | 17,246.77 ns | 509,100.0 ns | 0.08 | 0.00 | 640 B | 0.88 |
| PdqSort_Unguarded_Reverse | 100000 | 527,475.0 ns | 9,417.73 ns | 9,249.47 ns | 527,750.0 ns | 0.08 | 0.00 | 640 B | 0.88 |
| PdqSort_Unmanaged_Reverse | 100000 | 526,185.7 ns | 4,566.35 ns | 4,047.95 ns | 524,350.0 ns | 0.08 | 0.00 | 640 B | 0.88 |
| BuildInSort_Peek | 100000 | 15,733,764.3 ns | 281,448.72 ns | 249,496.96 ns | 15,696,200.0 ns | 2.38 | 0.04 | 728 B | 1.00 |
| PdqSort_Span_Peek | 100000 | 5,313,422.2 ns | 99,422.63 ns | 106,381.10 ns | 5,325,450.0 ns | 0.81 | 0.02 | 640 B | 0.88 |
| PdqSort_Unguarded_Peek | 100000 | 5,296,952.4 ns | 101,359.68 ns | 120,661.49 ns | 5,297,000.0 ns | 0.80 | 0.02 | 640 B | 0.88 |
| PdqSort_Unmanaged_Peek | 100000 | 5,509,794.7 ns | 104,336.80 ns | 115,970.08 ns | 5,477,900.0 ns | 0.84 | 0.02 | 640 B | 0.88 |
| BuildInSort_ReversePeek | 100000 | 16,306,442.9 ns | 294,652.68 ns | 261,201.93 ns | 16,234,950.0 ns | 2.47 | 0.04 | 728 B | 1.00 |
| PdqSort_Span_ReversePeek | 100000 | 5,293,880.8 ns | 103,075.99 ns | 141,091.58 ns | 5,301,750.0 ns | 0.80 | 0.02 | 640 B | 0.88 |
| PdqSort_Unguarded_ReversePeek | 100000 | 5,307,156.0 ns | 105,224.26 ns | 140,471.36 ns | 5,310,200.0 ns | 0.80 | 0.03 | 640 B | 0.88 |
| PdqSort_Unmanaged_ReversePeek | 100000 | 5,474,628.6 ns | 62,283.04 ns | 55,212.30 ns | 5,481,800.0 ns | 0.83 | 0.01 | 640 B | 0.88 |
| BuildInSort_AllEqual | 1000000 | 32,250,515.4 ns | 385,659.82 ns | 322,043.41 ns | 32,303,900.0 ns | 1.00 | 0.00 | 728 B | 1.00 |
| PdqSort_Span_AllEqual | 1000000 | 2,685,720.5 ns | 53,632.22 ns | 143,155.26 ns | 2,681,400.0 ns | 0.09 | 0.01 | 640 B | 0.88 |
| PdqSort_Unguarded_AllEqual | 1000000 | 2,695,716.0 ns | 53,861.92 ns | 71,904.12 ns | 2,694,800.0 ns | 0.08 | 0.00 | 640 B | 0.88 |
| PdqSort_Unmanaged_AllEqual | 1000000 | 2,544,946.7 ns | 48,743.58 ns | 123,181.25 ns | 2,522,500.0 ns | 0.08 | 0.00 | 640 B | 0.88 |
| BuildInSort_Random | 1000000 | 97,246,364.3 ns | 1,685,322.02 ns | 1,493,994.08 ns | 97,106,750.0 ns | 3.01 | 0.06 | 728 B | 1.00 |
| PdqSort_Span_Random | 1000000 | 81,674,520.0 ns | 1,522,765.20 ns | 1,424,395.52 ns | 81,422,300.0 ns | 2.53 | 0.06 | 640 B | 0.88 |
| PdqSort_Unguarded_Random | 1000000 | 78,480,814.3 ns | 1,259,999.40 ns | 1,116,956.65 ns | 78,232,150.0 ns | 2.43 | 0.05 | 640 B | 0.88 |
| PdqSort_Unmanaged_Random | 1000000 | 75,742,776.7 ns | 1,443,690.37 ns | 1,350,428.87 ns | 75,555,850.0 ns | 2.35 | 0.04 | 640 B | 0.88 |
| BuildInSort_RandomNear | 1000000 | 94,058,560.0 ns | 1,182,517.13 ns | 1,106,127.25 ns | 93,900,400.0 ns | 2.92 | 0.05 | 728 B | 1.00 |
| PdqSort_Span_RandomNear | 1000000 | 76,016,626.7 ns | 1,070,071.32 ns | 1,000,945.37 ns | 75,935,500.0 ns | 2.36 | 0.04 | 640 B | 0.88 |
| PdqSort_Unguarded_RandomNear | 1000000 | 73,359,693.3 ns | 983,771.24 ns | 920,220.23 ns | 73,086,400.0 ns | 2.27 | 0.03 | 640 B | 0.88 |
| PdqSort_Unmanaged_RandomNear | 1000000 | 72,146,346.7 ns | 1,070,657.54 ns | 1,001,493.72 ns | 71,879,500.0 ns | 2.24 | 0.03 | 640 B | 0.88 |
| BuildInSort_Sequence | 1000000 | 40,909,016.7 ns | 313,114.84 ns | 244,459.47 ns | 40,907,400.0 ns | 1.27 | 0.01 | 728 B | 1.00 |
| PdqSort_Span_Sequence | 1000000 | 3,531,986.0 ns | 70,239.72 ns | 130,193.83 ns | 3,541,800.0 ns | 0.11 | 0.00 | 640 B | 0.88 |
| PdqSort_Unguarded_Sequence | 1000000 | 3,128,238.6 ns | 58,644.90 ns | 142,749.78 ns | 3,071,100.0 ns | 0.10 | 0.01 | 640 B | 0.88 |
| PdqSort_Unmanaged_Sequence | 1000000 | 3,168,820.9 ns | 61,089.31 ns | 171,300.97 ns | 3,105,800.0 ns | 0.10 | 0.01 | 640 B | 0.88 |
| BuildInSort_Reverse | 1000000 | 77,981,876.9 ns | 532,221.70 ns | 444,429.23 ns | 78,049,400.0 ns | 2.42 | 0.03 | 728 B | 1.00 |
| PdqSort_Span_Reverse | 1000000 | 5,311,619.4 ns | 105,811.47 ns | 176,787.20 ns | 5,314,500.0 ns | 0.16 | 0.01 | 640 B | 0.88 |
| PdqSort_Unguarded_Reverse | 1000000 | 4,810,227.8 ns | 95,275.68 ns | 159,184.27 ns | 4,770,700.0 ns | 0.15 | 0.01 | 640 B | 0.88 |
| PdqSort_Unmanaged_Reverse | 1000000 | 4,618,975.9 ns | 63,517.07 ns | 93,102.50 ns | 4,593,700.0 ns | 0.14 | 0.00 | 640 B | 0.88 |
| BuildInSort_Peek | 1000000 | 201,730,586.7 ns | 2,203,914.30 ns | 2,061,542.81 ns | 201,139,300.0 ns | 6.25 | 0.07 | 728 B | 1.00 |
| PdqSort_Span_Peek | 1000000 | 55,542,364.3 ns | 789,530.44 ns | 699,898.17 ns | 55,295,000.0 ns | 1.72 | 0.03 | 640 B | 0.88 |
| PdqSort_Unguarded_Peek | 1000000 | 53,611,769.2 ns | 688,481.56 ns | 574,913.28 ns | 53,395,400.0 ns | 1.66 | 0.03 | 640 B | 0.88 |
| PdqSort_Unmanaged_Peek | 1000000 | 54,724,725.0 ns | 613,511.81 ns | 478,989.67 ns | 54,677,650.0 ns | 1.69 | 0.02 | 640 B | 0.88 |
| BuildInSort_ReversePeek | 1000000 | 198,181,523.1 ns | 1,083,538.51 ns | 904,803.73 ns | 198,010,200.0 ns | 6.15 | 0.09 | 728 B | 1.00 |
| PdqSort_Span_ReversePeek | 1000000 | 54,943,292.3 ns | 571,854.87 ns | 477,524.72 ns | 54,833,900.0 ns | 1.70 | 0.02 | 640 B | 0.88 |
| PdqSort_Unguarded_ReversePeek | 1000000 | 53,528,013.3 ns | 669,241.94 ns | 626,009.32 ns | 53,325,700.0 ns | 1.66 | 0.02 | 640 B | 0.88 |
| PdqSort_Unmanaged_ReversePeek | 1000000 | 53,984,115.4 ns | 976,304.65 ns | 815,258.60 ns | 53,689,900.0 ns | 1.67 | 0.03 | 640 B | 0.88 |