Benchmark of Collection Searching (TryGetValue method) in terms of Execution Time (Mean)


BenchmarkDotNet v0.13.12, Windows 11 (10.0.22631.3007/23H2/2023Update/SunValley3)
AMD Ryzen 7 5800H with Radeon Graphics, 1 CPU, 16 logical and 8 physical cores
.NET SDK 8.0.101
  [Host]   : .NET 8.0.1 (8.0.123.58001), X64 RyuJIT AVX2
  ShortRun : .NET 8.0.1 (8.0.123.58001), X64 RyuJIT AVX2

Job=ShortRun  IterationCount=3  LaunchCount=1  
WarmupCount=3

Comparison: Mean

MethodBig OLengthExistedInt32StringStructIntsClassIntsRecordStructIntsRecordClassIntsStructStringsClassStringsRecordStructStringsRecordClassStrings
FrozenSet O(1) 1000 False 2.017 ns 6.279 ns 20.44 ns 7.170 ns 2.770 ns 8.372 ns 55.73 ns 26.46 ns 22.32 ns 29.70 ns
FrozenDictionary O(1) 1000 False 2.030 ns 4.421 ns 19.79 ns 3.893 ns 2.496 ns 5.194 ns 56.43 ns 23.98 ns 22.38 ns 26.36 ns
Dictionary O(1) 1000 False 3.391 ns 7.095 ns 19.37 ns 5.800 ns 2.594 ns 7.600 ns 51.74 ns 26.80 ns 22.39 ns 28.87 ns
ReadOnlyDictionary O(1) 1000 False 3.455 ns 9.358 ns 33.32 ns 8.227 ns 4.541 ns 10.164 ns 64.18 ns 27.73 ns 24.38 ns 30.32 ns
HashSet O(1) 1000 False 3.481 ns 7.151 ns 22.08 ns 6.058 ns 4.426 ns 7.548 ns 57.58 ns 26.76 ns 24.29 ns 28.78 ns
ImmutableDictionary O(1) 1000 False 7.248 ns 16.466 ns 26.32 ns 11.503 ns 7.737 ns 12.672 ns 62.28 ns 30.47 ns 25.24 ns 33.59 ns
ImmutableHashSet O(1) 1000 False 7.340 ns 15.515 ns 27.27 ns 10.564 ns 7.797 ns 12.355 ns 60.33 ns 30.72 ns 25.47 ns 33.02 ns
SortedSet O(log(N)) 1000 False 11.367 ns 303.085 ns 12.72 ns 42.620 ns 12.721 ns 42.326 ns 295.38 ns 321.25 ns 297.21 ns 325.54 ns
List (Sorted + BinarySearch) O(log(N)) 1000 False 14.998 ns 353.234 ns 19.01 ns 36.647 ns 19.119 ns 35.829 ns 312.10 ns 323.10 ns 307.28 ns 334.64 ns
Array (Sorted + BinarySearch) O(log(N)) 1000 False 15.383 ns 311.216 ns 19.36 ns 37.925 ns 18.860 ns 38.351 ns 299.34 ns 336.69 ns 292.68 ns 340.86 ns
ImmutableArray (Sorted + BinarySearch) O(log(N)) 1000 False 15.764 ns 321.109 ns 19.09 ns 39.116 ns 19.021 ns 37.963 ns 293.73 ns 337.24 ns 311.06 ns 332.00 ns
SortedList O(log(N)) 1000 False 16.714 ns 319.730 ns 23.61 ns 48.149 ns 23.539 ns 45.018 ns 310.73 ns 335.78 ns 311.69 ns 350.56 ns
SortedDictionary O(log(N)) 1000 False 19.917 ns 358.193 ns 27.48 ns 60.603 ns 24.387 ns 60.654 ns 325.09 ns 362.20 ns 329.71 ns 356.53 ns
ImmutableSortedDictionary O(log(N)) 1000 False 23.368 ns 323.934 ns 36.37 ns 52.262 ns 36.601 ns 51.219 ns 351.23 ns 338.19 ns 310.22 ns 338.98 ns
ImmutableSortedSet O(log(N)) 1000 False 24.754 ns 336.183 ns 36.35 ns 48.278 ns 37.911 ns 48.499 ns 310.70 ns 362.93 ns 309.88 ns 339.99 ns
ImmutableList (Sorted + BinarySearch) O(log(N)) 1000 False 28.555 ns 357.601 ns 36.04 ns 79.511 ns 32.269 ns 77.948 ns 343.91 ns 380.81 ns 310.73 ns 363.58 ns
Array O(N) 1000 False 41.027 ns 4,006.808 ns 12,541.77 ns 1,736.114 ns 502.378 ns 2,684.823 ns 108,295.13 ns 4,278.42 ns 3,002.75 ns 4,876.45 ns
ReadOnlyCollection O(N) 1000 False 42.841 ns 3,005.547 ns 12,254.54 ns 773.975 ns 513.425 ns 1,975.733 ns 118,003.93 ns 806.45 ns 2,721.37 ns 4,492.43 ns
List O(N) 1000 False 42.976 ns 4,002.468 ns 12,764.38 ns 1,508.505 ns 491.131 ns 2,788.096 ns 112,553.83 ns 4,405.76 ns 2,432.59 ns 4,918.19 ns
ImmutableArray O(N) 1000 False 68.369 ns 3,938.770 ns 12,889.71 ns 1,504.838 ns 505.744 ns 2,686.475 ns 111,003.80 ns 4,104.14 ns 2,706.27 ns 4,864.75 ns
MethodBig OLengthExistedInt32StringStructIntsClassIntsRecordStructIntsRecordClassIntsStructStringsClassStringsRecordStructStringsRecordClassStrings
FrozenDictionary O(1) 1000 True 2.095 ns 4.857 ns 34.89 ns 7.734 ns 3.898 ns 9.072 ns 278.40 ns 27.86 ns 23.84 ns 29.57 ns
FrozenSet O(1) 1000 True 2.394 ns 10.957 ns 45.59 ns 13.617 ns 4.049 ns 15.024 ns 277.42 ns 33.70 ns 24.57 ns 35.91 ns
HashSet O(1) 1000 True 2.853 ns 9.021 ns 36.13 ns 9.552 ns 3.997 ns 11.522 ns 271.28 ns 30.82 ns 25.17 ns 32.48 ns
Dictionary O(1) 1000 True 4.085 ns 8.973 ns 35.81 ns 9.370 ns 3.575 ns 10.990 ns 269.36 ns 30.29 ns 24.77 ns 32.05 ns
ReadOnlyDictionary O(1) 1000 True 4.432 ns 11.229 ns 39.45 ns 12.288 ns 5.672 ns 14.022 ns 267.79 ns 33.20 ns 27.13 ns 34.84 ns
ImmutableDictionary O(1) 1000 True 6.307 ns 20.911 ns 40.20 ns 17.573 ns 7.762 ns 18.683 ns 286.65 ns 35.85 ns 26.29 ns 38.15 ns
ImmutableHashSet O(1) 1000 True 6.315 ns 19.697 ns 39.89 ns 15.310 ns 7.407 ns 17.343 ns 279.63 ns 34.40 ns 26.31 ns 37.07 ns
SortedSet O(log(N)) 1000 True 12.824 ns 289.570 ns 18.54 ns 39.951 ns 18.607 ns 41.549 ns 246.11 ns 271.12 ns 244.64 ns 288.70 ns
ImmutableArray (Sorted + BinarySearch) O(log(N)) 1000 True 13.101 ns 265.289 ns 20.32 ns 38.523 ns 20.234 ns 38.337 ns 225.38 ns 287.29 ns 223.43 ns 283.93 ns
Array (Sorted + BinarySearch) O(log(N)) 1000 True 13.181 ns 264.543 ns 20.34 ns 39.157 ns 20.193 ns 38.776 ns 222.51 ns 284.16 ns 230.00 ns 265.16 ns
SortedList O(log(N)) 1000 True 13.182 ns 270.004 ns 26.04 ns 43.552 ns 26.215 ns 42.708 ns 237.37 ns 266.62 ns 237.11 ns 260.66 ns
List (Sorted + BinarySearch) O(log(N)) 1000 True 13.594 ns 264.359 ns 20.60 ns 36.386 ns 20.436 ns 36.092 ns 247.74 ns 279.69 ns 220.86 ns 278.72 ns
ImmutableSortedDictionary O(log(N)) 1000 True 18.594 ns 237.537 ns 26.37 ns 42.528 ns 28.917 ns 41.881 ns 243.21 ns 260.24 ns 249.12 ns 266.12 ns
ImmutableSortedSet O(log(N)) 1000 True 18.637 ns 245.379 ns 29.35 ns 39.679 ns 30.016 ns 39.638 ns 239.16 ns 259.80 ns 238.64 ns 259.17 ns
SortedDictionary O(log(N)) 1000 True 19.448 ns 281.324 ns 27.64 ns 59.154 ns 25.049 ns 58.112 ns 258.40 ns 323.84 ns 265.08 ns 292.27 ns
ImmutableList (Sorted + BinarySearch) O(log(N)) 1000 True 27.142 ns 268.966 ns 31.13 ns 68.583 ns 31.714 ns 68.878 ns 249.16 ns 289.97 ns 244.42 ns 294.36 ns
Array O(N) 1000 True 28.672 ns 1,831.162 ns 6,261.18 ns 841.566 ns 253.309 ns 1,312.305 ns 52,177.49 ns 2,075.47 ns 1,293.04 ns 2,295.45 ns
List O(N) 1000 True 29.101 ns 1,826.351 ns 6,091.29 ns 726.899 ns 253.244 ns 1,293.321 ns 55,667.07 ns 1,956.09 ns 1,409.63 ns 2,321.20 ns
ImmutableArray O(N) 1000 True 30.060 ns 1,789.514 ns 6,350.76 ns 852.207 ns 252.977 ns 1,315.318 ns 53,316.98 ns 1,983.68 ns 1,326.56 ns 2,408.86 ns
ReadOnlyCollection O(N) 1000 True 32.001 ns 1,435.280 ns 6,179.42 ns 265.686 ns 254.999 ns 955.457 ns 53,090.26 ns 326.04 ns 1,418.92 ns 2,153.06 ns
Powered by https://github.com/mjebrahimi/BenchmarkDotNetVisualizer