Skip to content

Latest commit

 

History

History
137 lines (129 loc) · 9.19 KB

File metadata and controls

137 lines (129 loc) · 9.19 KB

Comparison of System.Collections.Immutable with LanguageExt, instantiation/creation

Constructor, default size

BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1889 (21H2)
Intel Core i7-7820HQ CPU 2.90GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
.NET SDK=6.0.303
  [Host]     : .NET 6.0.8 (6.0.822.36306), X64 RyuJIT
  DefaultJob : .NET 6.0.8 (6.0.822.36306), X64 RyuJIT
Method Mean Error StdDev Median
ImmutableArray 0.9450 ns 0.0546 ns 0.0561 ns 0.9293 ns
ImmutableDictionary 0.0182 ns 0.0373 ns 0.0349 ns 0.0000 ns
ImmutableHashSet 0.0550 ns 0.0576 ns 0.0617 ns 0.0184 ns
ImmutableList 0.0404 ns 0.0545 ns 0.0483 ns 0.0228 ns
ImmutableQueue 0.0159 ns 0.0376 ns 0.0386 ns 0.0000 ns
ImmutableStack 0.0278 ns 0.0442 ns 0.0575 ns 0.0000 ns
ImmutableSortedDictionary 0.0082 ns 0.0204 ns 0.0181 ns 0.0000 ns
ImmutableSortedSet 0.0123 ns 0.0297 ns 0.0305 ns 0.0000 ns
LanguageExtArr 0.0043 ns 0.0062 ns 0.0173 ns 0.0000 ns
LanguageExtHashMap 0.0021 ns 0.0072 ns 0.0064 ns 0.0000 ns
LanguageExtHashSet 0.0159 ns 0.0186 ns 0.0174 ns 0.0173 ns
LanguageExtLst 0.0395 ns 0.0265 ns 0.0248 ns 0.0515 ns
LanguageExtQue 0.0000 ns 0.0000 ns 0.0000 ns 0.0000 ns
LanguageExtStck 0.0000 ns 0.0000 ns 0.0000 ns 0.0000 ns
LanguageExtMap 0.0000 ns 0.0000 ns 0.0000 ns 0.0000 ns
LanguageExtSet 0.0988 ns 0.0318 ns 0.0312 ns 0.0918 ns

Constructor, default size

BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1889 (21H2)
Intel Core i7-7820HQ CPU 2.90GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
.NET SDK=6.0.303
  [Host]     : .NET 6.0.8 (6.0.822.36306), X64 RyuJIT
  DefaultJob : .NET 6.0.8 (6.0.822.36306), X64 RyuJIT
Method Mean Error StdDev Median
ImmutableArray 6.3089 ns 0.1510 ns 0.1412 ns 6.3395 ns
ImmutableDictionary 5.0311 ns 0.1841 ns 0.4585 ns 5.0839 ns
ImmutableHashSet 4.7828 ns 0.1861 ns 0.2354 ns 4.7783 ns
ImmutableList 4.5509 ns 0.1669 ns 0.1479 ns 4.5025 ns
ImmutableQueue 4.8036 ns 0.1844 ns 0.2398 ns 4.8338 ns
ImmutableStack 4.7860 ns 0.1809 ns 0.2083 ns 4.7439 ns
ImmutableSortedDictionary 4.6892 ns 0.1862 ns 0.2217 ns 4.6814 ns
ImmutableSortedSet 4.7927 ns 0.1877 ns 0.2809 ns 4.7323 ns
LanguageExtArr 0.0356 ns 0.0345 ns 0.0383 ns 0.0186 ns
LanguageExtHashMap 0.0073 ns 0.0102 ns 0.0095 ns 0.0000 ns
LanguageExtHashSet 0.0309 ns 0.0304 ns 0.0395 ns 0.0082 ns
LanguageExtLst 0.0010 ns 0.0043 ns 0.0036 ns 0.0000 ns
LanguageExtQue 0.0151 ns 0.0232 ns 0.0239 ns 0.0049 ns
LanguageExtStck 0.0178 ns 0.0195 ns 0.0173 ns 0.0142 ns
LanguageExtMap 0.0031 ns 0.0080 ns 0.0071 ns 0.0000 ns
LanguageExtSet 0.0142 ns 0.0222 ns 0.0228 ns 0.0000 ns

Constructor, from existing collection

BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1889 (21H2)
Intel Core i7-7820HQ CPU 2.90GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
.NET SDK=6.0.303
  [Host]     : .NET 6.0.8 (6.0.822.36306), X64 RyuJIT
  DefaultJob : .NET 6.0.8 (6.0.822.36306), X64 RyuJIT
Method Size Mean Error StdDev
ImmutableArray 256 198.8 ns 4.02 ns 10.02 ns
ImmutableDictionary 256 81,401.4 ns 1,587.92 ns 1,559.55 ns
ImmutableList 256 7,420.4 ns 147.79 ns 234.41 ns
ImmutableQueue 256 2,365.3 ns 46.52 ns 73.79 ns
ImmutableStack 256 3,627.4 ns 71.45 ns 123.25 ns
ImmutableSortedDictionary 256 56,113.0 ns 1,094.27 ns 1,603.96 ns
ImmutableSortedSet 256 10,946.6 ns 204.25 ns 352.32 ns
LanguageExtArr 256 193.1 ns 3.81 ns 7.06 ns
LanguageExtHashMap 256 88,840.6 ns 8,360.91 ns 24,123.14 ns
LanguageExtLst 256 36,738.2 ns 687.95 ns 609.85 ns
LanguageExtQue 256 7,990.5 ns 159.23 ns 243.16 ns
LanguageExtStck 256 4,694.0 ns 70.72 ns 62.69 ns
LanguageExtMap 256 109,848.5 ns 7,615.94 ns 22,095.22 ns
LanguageExtSet 256 112,386.3 ns 7,222.35 ns 20,722.26 ns
ImmutableArray 4096 2,127.9 ns 49.48 ns 143.54 ns
ImmutableDictionary 4096 2,584,373.3 ns 51,525.75 ns 87,494.63 ns
ImmutableList 4096 149,026.0 ns 2,896.89 ns 4,335.92 ns
ImmutableQueue 4096 50,054.0 ns 979.32 ns 1,790.75 ns
ImmutableStack 4096 68,584.0 ns 1,178.73 ns 1,490.72 ns
ImmutableSortedDictionary 4096 1,578,749.6 ns 30,589.94 ns 45,785.58 ns
ImmutableSortedSet 4096 392,681.0 ns 6,026.96 ns 5,342.74 ns
LanguageExtArr 4096 2,170.7 ns 43.41 ns 107.29 ns
LanguageExtHashMap 4096 1,379,390.0 ns 152,199.46 ns 448,763.55 ns
LanguageExtLst 4096 795,041.6 ns 12,839.48 ns 13,738.10 ns
LanguageExtQue 4096 186,187.1 ns 3,680.54 ns 6,542.16 ns
LanguageExtStck 4096 83,166.8 ns 1,639.41 ns 2,552.36 ns
LanguageExtMap 4096 1,995,646.9 ns 298,683.93 ns 871,275.03 ns
LanguageExtSet 4096 2,110,593.5 ns 220,661.07 ns 625,978.74 ns

Constructor, from existing collection

BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1889 (21H2)
Intel Core i7-7820HQ CPU 2.90GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
.NET SDK=6.0.303
  [Host]     : .NET 6.0.8 (6.0.822.36306), X64 RyuJIT
  DefaultJob : .NET 6.0.8 (6.0.822.36306), X64 RyuJIT
Method Size Mean Error StdDev
ImmutableArray 256 378.2 ns 7.53 ns 13.96 ns
ImmutableDictionary 256 98,115.5 ns 1,927.59 ns 2,885.13 ns
ImmutableList 256 9,896.6 ns 191.96 ns 249.60 ns
ImmutableQueue 256 3,533.4 ns 68.37 ns 91.27 ns
ImmutableStack 256 4,989.8 ns 96.48 ns 147.34 ns
ImmutableSortedDictionary 256 226,338.2 ns 4,481.29 ns 8,080.69 ns
ImmutableSortedSet 256 177,442.8 ns 2,971.44 ns 2,779.49 ns
LanguageExtArr 256 191.8 ns 3.50 ns 3.10 ns
LanguageExtHashMap 256 66,645.6 ns 1,271.11 ns 1,248.40 ns
LanguageExtLst 256 32,168.1 ns 510.31 ns 426.14 ns
LanguageExtQue 256 5,894.5 ns 101.95 ns 109.08 ns
LanguageExtStck 256 4,120.4 ns 82.26 ns 130.47 ns
LanguageExtMap 256 158,800.9 ns 2,755.24 ns 2,442.45 ns
LanguageExtSet 256 172,628.1 ns 3,323.43 ns 4,081.47 ns
ImmutableArray 4096 2,353.1 ns 46.74 ns 62.40 ns
ImmutableDictionary 4096 1,962,078.9 ns 37,230.62 ns 34,825.54 ns
ImmutableList 4096 129,395.6 ns 2,579.18 ns 3,167.46 ns
ImmutableQueue 4096 45,559.1 ns 888.11 ns 1,273.70 ns
ImmutableStack 4096 61,718.1 ns 1,063.71 ns 1,306.33 ns
ImmutableSortedDictionary 4096 4,337,863.7 ns 83,043.45 ns 92,302.58 ns
ImmutableSortedSet 4096 4,514,653.4 ns 88,583.48 ns 124,181.67 ns
LanguageExtArr 4096 2,558.0 ns 50.74 ns 65.98 ns
LanguageExtHashMap 4096 1,525,048.2 ns 28,529.17 ns 28,019.46 ns
LanguageExtLst 4096 703,255.9 ns 13,651.49 ns 17,264.77 ns
LanguageExtQue 4096 121,836.5 ns 2,409.88 ns 2,578.54 ns
LanguageExtStck 4096 66,604.9 ns 1,248.79 ns 1,107.02 ns
LanguageExtMap 4096 4,509,360.0 ns 88,740.07 ns 130,074.04 ns
LanguageExtSet 4096 4,596,392.5 ns 87,471.73 ns 100,732.57 ns