7.6 KiB
7.6 KiB
This uses integer keys, and thus there are no hashing penalties. This is more or less raw overhead of the data structure.
BenchmarkDotNet v0.15.8, Linux openSUSE Tumbleweed-Slowroll
AMD Ryzen 9 7900 3.02GHz, 1 CPU, 24 logical and 12 physical cores
.NET SDK 10.0.100
[Host] : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
ShortRun : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
Job=ShortRun IterationCount=3 LaunchCount=1
WarmupCount=3
| Method | N | Mean | Error | StdDev | Gen0 | Gen1 | Gen2 | Allocated |
|---|---|---|---|---|---|---|---|---|
| 'Build: NiceBTree (Transient)' | 100 | 3,056.96 ns | 404.797 ns | 22.188 ns | 0.2861 | - | - | 4800 B |
| 'Build: MS Sorted (Builder)' | 100 | 3,099.28 ns | 551.017 ns | 30.203 ns | 0.2899 | 0.0038 | - | 4864 B |
| 'Build: LanguageExt Map (AVL)' | 100 | 6,376.44 ns | 2,154.744 ns | 118.109 ns | 2.2736 | 0.0229 | - | 38144 B |
| 'Build: LanguageExt HashMap' | 100 | 4,577.22 ns | 1,143.256 ns | 62.666 ns | 1.9684 | 0.0076 | - | 33024 B |
| 'Read: NiceBTree' | 100 | 1,281.41 ns | 326.069 ns | 17.873 ns | - | - | - | - |
| 'Read: MS Sorted' | 100 | 484.55 ns | 176.528 ns | 9.676 ns | - | - | - | - |
| 'Read: LanguageExt Map' | 100 | 1,284.80 ns | 770.679 ns | 42.244 ns | - | - | - | - |
| 'Read: LanguageExt HashMap' | 100 | 641.44 ns | 33.663 ns | 1.845 ns | - | - | - | - |
| 'Iterate: NiceBTree' | 100 | 136.77 ns | 14.772 ns | 0.810 ns | - | - | - | - |
| 'Iterate: MS Sorted' | 100 | 425.40 ns | 78.190 ns | 4.286 ns | - | - | - | - |
| 'Iterate: LanguageExt Map' | 100 | 291.45 ns | 113.262 ns | 6.208 ns | 0.0019 | - | - | 32 B |
| 'Iterate: LanguageExt HashMap' | 100 | 763.45 ns | 72.014 ns | 3.947 ns | 0.0648 | - | - | 1088 B |
| 'Set: NiceBTree' | 100 | 60.85 ns | 11.258 ns | 0.617 ns | 0.0678 | 0.0002 | - | 1136 B |
| 'Set: MS Sorted' | 100 | 73.15 ns | 23.712 ns | 1.300 ns | 0.0229 | - | - | 384 B |
| 'Set: LanguageExt Map' | 100 | 58.56 ns | 1.750 ns | 0.096 ns | 0.0219 | - | - | 368 B |
| 'Set: LanguageExt HashMap' | 100 | 36.32 ns | 14.171 ns | 0.777 ns | 0.0206 | - | - | 344 B |
| 'Build: NiceBTree (Transient)' | 1000 | 42,256.55 ns | 4,394.007 ns | 240.850 ns | 2.3804 | 0.1221 | - | 40176 B |
| 'Build: MS Sorted (Builder)' | 1000 | 49,147.19 ns | 3,136.972 ns | 171.948 ns | 2.8687 | 0.4272 | - | 48064 B |
| 'Build: LanguageExt Map (AVL)' | 1000 | 103,207.86 ns | 38,017.513 ns | 2,083.868 ns | 34.6680 | 3.1738 | - | 580688 B |
| 'Build: LanguageExt HashMap' | 1000 | 118,382.76 ns | 8,091.969 ns | 443.548 ns | 45.4102 | 3.2959 | - | 760096 B |
| 'Read: NiceBTree' | 1000 | 13,839.35 ns | 680.579 ns | 37.305 ns | - | - | - | - |
| 'Read: MS Sorted' | 1000 | 8,663.56 ns | 1,007.067 ns | 55.201 ns | - | - | - | - |
| 'Read: LanguageExt Map' | 1000 | 22,507.35 ns | 2,405.937 ns | 131.878 ns | - | - | - | - |
| 'Read: LanguageExt HashMap' | 1000 | 9,727.15 ns | 1,226.266 ns | 67.216 ns | - | - | - | - |
| 'Iterate: NiceBTree' | 1000 | 1,216.36 ns | 264.964 ns | 14.524 ns | - | - | - | - |
| 'Iterate: MS Sorted' | 1000 | 3,870.96 ns | 280.519 ns | 15.376 ns | - | - | - | - |
| 'Iterate: LanguageExt Map' | 1000 | 2,571.58 ns | 422.239 ns | 23.144 ns | - | - | - | 32 B |
| 'Iterate: LanguageExt HashMap' | 1000 | 12,252.69 ns | 2,654.186 ns | 145.485 ns | 1.9226 | - | - | 32320 B |
| 'Set: NiceBTree' | 1000 | 122.89 ns | 31.121 ns | 1.706 ns | 0.0677 | 0.0002 | - | 1136 B |
| 'Set: MS Sorted' | 1000 | 94.78 ns | 68.248 ns | 3.741 ns | 0.0315 | - | - | 528 B |
| 'Set: LanguageExt Map' | 1000 | 81.47 ns | 39.825 ns | 2.183 ns | 0.0305 | - | - | 512 B |
| 'Set: LanguageExt HashMap' | 1000 | 58.48 ns | 22.323 ns | 1.224 ns | 0.0368 | 0.0001 | - | 616 B |
| 'Build: NiceBTree (Transient)' | 100000 | 8,648,357.47 ns | 528,464.456 ns | 28,966.920 ns | 234.3750 | 125.0000 | - | 3952352 B |
| 'Build: MS Sorted (Builder)' | 100000 | 16,518,142.94 ns | 754,623.461 ns | 41,363.458 ns | 281.2500 | 250.0000 | - | 4800064 B |
| 'Build: LanguageExt Map (AVL)' | 100000 | 41,025,632.97 ns | 4,549,124.512 ns | 249,352.866 ns | 5333.3333 | 3333.3333 | - | 89959040 B |
| 'Build: LanguageExt HashMap' | 100000 | 21,273,736.10 ns | 1,167,411.035 ns | 63,989.738 ns | 5781.2500 | 2937.5000 | 31.2500 | 96555424 B |
| 'Read: NiceBTree' | 100000 | 5,469,322.19 ns | 351,350.121 ns | 19,258.686 ns | - | - | - | - |
| 'Read: MS Sorted' | 100000 | 8,066,906.24 ns | 709,413.540 ns | 38,885.350 ns | - | - | - | - |
| 'Read: LanguageExt Map' | 100000 | 10,104,086.04 ns | 1,534,486.048 ns | 84,110.359 ns | - | - | - | - |
| 'Read: LanguageExt HashMap' | 100000 | 1,932,000.56 ns | 247,929.366 ns | 13,589.845 ns | - | - | - | - |
| 'Iterate: NiceBTree' | 100000 | 144,689.84 ns | 57,439.701 ns | 3,148.464 ns | - | - | - | - |
| 'Iterate: MS Sorted' | 100000 | 1,087,465.02 ns | 240,535.824 ns | 13,184.580 ns | - | - | - | - |
| 'Iterate: LanguageExt Map' | 100000 | 774,299.86 ns | 55,922.321 ns | 3,065.291 ns | - | - | - | 32 B |
| 'Iterate: LanguageExt HashMap' | 100000 | 1,230,437.83 ns | 47,039.229 ns | 2,578.379 ns | 64.4531 | - | - | 1082432 B |
| 'Set: NiceBTree' | 100000 | 201.88 ns | 431.379 ns | 23.645 ns | 0.1223 | 0.0007 | - | 2048 B |
| 'Set: MS Sorted' | 100000 | 144.35 ns | 75.135 ns | 4.118 ns | 0.0458 | - | - | 768 B |
| 'Set: LanguageExt Map' | 100000 | 121.02 ns | 31.124 ns | 1.706 ns | 0.0448 | - | - | 752 B |
| 'Set: LanguageExt HashMap' | 100000 | 84.70 ns | 56.667 ns | 3.106 ns | 0.0583 | - | - | 976 B |