PersistentMap/PersistentMap/Benchmarks/intkeys.md
2026-02-12 10:34:01 +01:00

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