diff --git a/PersistentMap/Benchmarks/AgainstLanguageExt.MapBenchmarks-report-github.md b/PersistentMap/Benchmarks/AgainstLanguageExt.MapBenchmarks-report-github.md deleted file mode 100644 index a34f42e..0000000 --- a/PersistentMap/Benchmarks/AgainstLanguageExt.MapBenchmarks-report-github.md +++ /dev/null @@ -1,111 +0,0 @@ -``` - -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 - DefaultJob : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4 - -Alloc Ratio=NA - -``` -| Method | KeyLength | CollectionSize | Mean | Error | StdDev | Gen0 | Gen1 | Gen2 | Allocated | -|----------------------------------- |---------- |--------------- |--------------------:|------------------:|------------------:|------------:|------------:|----------:|-------------:| -| **'Build: Sys.ImmutableDict'** | **10** | **1000** | **80,197.68 ns** | **628.656 ns** | **557.288 ns** | **3.7842** | **0.6104** | **-** | **64072 B** | -| 'Build: LangExt.HashMap' | 10 | 1000 | 101,031.57 ns | 842.539 ns | 703.558 ns | 16.8457 | 2.3193 | - | 282816 B | -| 'Build: LangExt.SortedMap' | 10 | 1000 | 231,169.60 ns | 4,303.018 ns | 3,814.513 ns | 3.1738 | 0.4883 | - | 56088 B | -| 'Build: PersistentMap (Iterative)' | 10 | 1000 | 247,805.45 ns | 4,848.561 ns | 7,106.959 ns | 138.1836 | 15.1367 | - | 2314008 B | -| 'Build: PersistentMap (Transient)' | 10 | 1000 | 85,655.04 ns | 826.536 ns | 690.195 ns | 3.5400 | 0.3662 | - | 59624 B | -| 'Lookup: Sys.ImmutableDict' | 10 | 1000 | 11.26 ns | 0.040 ns | 0.035 ns | - | - | - | - | -| 'Lookup: Sys.SortedDict' | 10 | 1000 | 132.93 ns | 1.110 ns | 0.984 ns | - | - | - | - | -| 'Lookup: LangExt.HashMap' | 10 | 1000 | 24.35 ns | 0.220 ns | 0.206 ns | - | - | - | - | -| 'Lookup: LangExt.SortedMap' | 10 | 1000 | 191.15 ns | 0.908 ns | 0.758 ns | - | - | - | - | -| 'Lookup: PersistentMap' | 10 | 1000 | 25.57 ns | 0.185 ns | 0.173 ns | - | - | - | - | -| | | | | | | | | | | -| **'Build: Sys.ImmutableDict'** | **10** | **100000** | **26,453,597.57 ns** | **369,042.136 ns** | **345,202.243 ns** | **375.0000** | **281.2500** | **-** | **6400128 B** | -| 'Build: LangExt.HashMap' | 10 | 100000 | 30,466,067.88 ns | 607,708.598 ns | 568,451.000 ns | 2125.0000 | 1125.0000 | 125.0000 | 33872183 B | -| 'Build: LangExt.SortedMap' | 10 | 100000 | 57,320,977.00 ns | 294,859.779 ns | 246,221.270 ns | 333.3333 | 222.2222 | - | 5600088 B | -| 'Build: PersistentMap (Iterative)' | 10 | 100000 | 61,269,640.88 ns | 944,908.467 ns | 883,867.966 ns | 22375.0000 | 15375.0000 | 125.0000 | 373286500 B | -| 'Build: PersistentMap (Transient)' | 10 | 100000 | 17,053,104.34 ns | 75,075.340 ns | 66,552.333 ns | 343.7500 | 218.7500 | - | 5764192 B | -| 'Lookup: Sys.ImmutableDict' | 10 | 100000 | 14.23 ns | 0.048 ns | 0.043 ns | - | - | - | - | -| 'Lookup: Sys.SortedDict' | 10 | 100000 | 317.13 ns | 1.974 ns | 1.750 ns | - | - | - | - | -| 'Lookup: LangExt.HashMap' | 10 | 100000 | 30.39 ns | 0.115 ns | 0.102 ns | - | - | - | - | -| 'Lookup: LangExt.SortedMap' | 10 | 100000 | 367.82 ns | 1.219 ns | 1.080 ns | - | - | - | - | -| 'Lookup: PersistentMap' | 10 | 100000 | 44.58 ns | 0.191 ns | 0.178 ns | - | - | - | - | -| | | | | | | | | | | -| **'Build: Sys.ImmutableDict'** | **10** | **1000000** | **565,648,044.07 ns** | **7,804,426.380 ns** | **7,300,265.281 ns** | **3000.0000** | **2000.0000** | **-** | **64006400 B** | -| 'Build: LangExt.HashMap' | 10 | 1000000 | 705,337,758.36 ns | 8,815,356.221 ns | 7,814,583.679 ns | 22000.0000 | 20000.0000 | - | 371442296 B | -| 'Build: LangExt.SortedMap' | 10 | 1000000 | 1,090,945,766.47 ns | 15,976,157.606 ns | 14,944,107.744 ns | 3000.0000 | 2000.0000 | - | 56000088 B | -| 'Build: PersistentMap (Iterative)' | 10 | 1000000 | 1,869,359,967.60 ns | 13,028,258.852 ns | 12,186,641.419 ns | 248000.0000 | 134000.0000 | 2000.0000 | 4116022328 B | -| 'Build: PersistentMap (Transient)' | 10 | 1000000 | 327,151,058.39 ns | 6,192,298.711 ns | 6,625,690.250 ns | 3000.0000 | 2500.0000 | - | 57911880 B | -| 'Lookup: Sys.ImmutableDict' | 10 | 1000000 | 16.76 ns | 0.329 ns | 0.323 ns | - | - | - | - | -| 'Lookup: Sys.SortedDict' | 10 | 1000000 | 229.91 ns | 0.557 ns | 0.521 ns | - | - | - | - | -| 'Lookup: LangExt.HashMap' | 10 | 1000000 | 30.30 ns | 0.095 ns | 0.089 ns | - | - | - | - | -| 'Lookup: LangExt.SortedMap' | 10 | 1000000 | 439.20 ns | 3.921 ns | 3.668 ns | - | - | - | - | -| 'Lookup: PersistentMap' | 10 | 1000000 | 57.93 ns | 0.262 ns | 0.219 ns | - | - | - | - | -| | | | | | | | | | | -| **'Build: Sys.ImmutableDict'** | **100** | **1000** | **152,297.84 ns** | **1,453.902 ns** | **1,359.981 ns** | **3.6621** | **0.4883** | **-** | **64072 B** | -| 'Build: LangExt.HashMap' | 100 | 1000 | 162,130.87 ns | 1,572.067 ns | 1,470.513 ns | 17.0898 | 2.1973 | - | 286248 B | -| 'Build: LangExt.SortedMap' | 100 | 1000 | 227,901.82 ns | 3,599.541 ns | 3,190.900 ns | 3.1738 | 0.4883 | - | 56088 B | -| 'Build: PersistentMap (Iterative)' | 100 | 1000 | 246,870.77 ns | 4,663.995 ns | 4,362.704 ns | 138.4277 | 15.1367 | - | 2316904 B | -| 'Build: PersistentMap (Transient)' | 100 | 1000 | 87,058.89 ns | 995.531 ns | 831.314 ns | 3.6621 | 0.3662 | - | 62520 B | -| 'Lookup: Sys.ImmutableDict' | 100 | 1000 | 51.85 ns | 0.344 ns | 0.287 ns | - | - | - | - | -| 'Lookup: Sys.SortedDict' | 100 | 1000 | 126.84 ns | 0.807 ns | 0.755 ns | - | - | - | - | -| 'Lookup: LangExt.HashMap' | 100 | 1000 | 59.05 ns | 0.193 ns | 0.161 ns | - | - | - | - | -| 'Lookup: LangExt.SortedMap' | 100 | 1000 | 172.41 ns | 1.498 ns | 1.401 ns | - | - | - | - | -| 'Lookup: PersistentMap' | 100 | 1000 | 26.71 ns | 0.094 ns | 0.088 ns | - | - | - | - | -| | | | | | | | | | | -| **'Build: Sys.ImmutableDict'** | **100** | **100000** | **33,894,492.92 ns** | **510,741.665 ns** | **477,748.070 ns** | **333.3333** | **266.6667** | **-** | **6400184 B** | -| 'Build: LangExt.HashMap' | 100 | 100000 | 42,503,012.72 ns | 844,933.727 ns | 1,854,650.153 ns | 2066.6667 | 1066.6667 | 66.6667 | 33877456 B | -| 'Build: LangExt.SortedMap' | 100 | 100000 | 58,627,288.83 ns | 659,710.519 ns | 550,888.162 ns | 333.3333 | 222.2222 | - | 5600088 B | -| 'Build: PersistentMap (Iterative)' | 100 | 100000 | 69,999,451.30 ns | 1,366,779.941 ns | 1,824,612.118 ns | 22625.0000 | 15625.0000 | 125.0000 | 377408145 B | -| 'Build: PersistentMap (Transient)' | 100 | 100000 | 19,221,436.72 ns | 376,157.061 ns | 628,473.997 ns | 343.7500 | 281.2500 | - | 5791360 B | -| 'Lookup: Sys.ImmutableDict' | 100 | 100000 | 55.38 ns | 0.349 ns | 0.309 ns | - | - | - | - | -| 'Lookup: Sys.SortedDict' | 100 | 100000 | 298.94 ns | 3.088 ns | 2.888 ns | - | - | - | - | -| 'Lookup: LangExt.HashMap' | 100 | 100000 | 81.90 ns | 0.693 ns | 0.649 ns | - | - | - | - | -| 'Lookup: LangExt.SortedMap' | 100 | 100000 | 401.93 ns | 2.570 ns | 2.278 ns | - | - | - | - | -| 'Lookup: PersistentMap' | 100 | 100000 | 49.00 ns | 0.523 ns | 0.490 ns | - | - | - | - | -| | | | | | | | | | | -| **'Build: Sys.ImmutableDict'** | **100** | **1000000** | **679,242,633.13 ns** | **13,320,688.340 ns** | **12,460,180.143 ns** | **3000.0000** | **2000.0000** | **-** | **64006792 B** | -| 'Build: LangExt.HashMap' | 100 | 1000000 | 905,145,222.68 ns | 16,013,156.606 ns | 19,665,596.105 ns | 22000.0000 | 20000.0000 | - | 371420160 B | -| 'Build: LangExt.SortedMap' | 100 | 1000000 | 1,311,013,675.64 ns | 21,946,824.587 ns | 19,455,288.355 ns | 3000.0000 | 2000.0000 | - | 56000088 B | -| 'Build: PersistentMap (Iterative)' | 100 | 1000000 | 1,781,838,551.67 ns | 21,016,398.450 ns | 19,658,752.159 ns | 249000.0000 | 134000.0000 | 1000.0000 | 4157329544 B | -| 'Build: PersistentMap (Transient)' | 100 | 1000000 | 378,070,334.14 ns | 7,546,360.889 ns | 19,747,512.605 ns | 3000.0000 | 2000.0000 | - | 57879232 B | -| 'Lookup: Sys.ImmutableDict' | 100 | 1000000 | 56.94 ns | 0.391 ns | 0.366 ns | - | - | - | - | -| 'Lookup: Sys.SortedDict' | 100 | 1000000 | 299.78 ns | 4.283 ns | 4.006 ns | - | - | - | - | -| 'Lookup: LangExt.HashMap' | 100 | 1000000 | 81.32 ns | 0.714 ns | 0.633 ns | - | - | - | - | -| 'Lookup: LangExt.SortedMap' | 100 | 1000000 | 371.55 ns | 1.288 ns | 1.142 ns | - | - | - | - | -| 'Lookup: PersistentMap' | 100 | 1000000 | 57.35 ns | 0.203 ns | 0.180 ns | - | - | - | - | -| | | | | | | | | | | -| **'Build: Sys.ImmutableDict'** | **1000** | **1000** | **862,166.32 ns** | **6,173.897 ns** | **5,775.067 ns** | **2.9297** | **-** | **-** | **64072 B** | -| 'Build: LangExt.HashMap' | 1000 | 1000 | 715,350.87 ns | 5,832.760 ns | 5,455.967 ns | 16.6016 | 1.9531 | - | 288824 B | -| 'Build: LangExt.SortedMap' | 1000 | 1000 | 231,953.07 ns | 4,633.161 ns | 4,957.431 ns | 3.1738 | 0.4883 | - | 56088 B | -| 'Build: PersistentMap (Iterative)' | 1000 | 1000 | 244,027.59 ns | 4,381.202 ns | 3,883.821 ns | 138.1836 | 14.6484 | - | 2312560 B | -| 'Build: PersistentMap (Transient)' | 1000 | 1000 | 85,141.37 ns | 997.399 ns | 832.873 ns | 3.4180 | 0.2441 | - | 58176 B | -| 'Lookup: Sys.ImmutableDict' | 1000 | 1000 | 463.86 ns | 2.281 ns | 1.905 ns | - | - | - | - | -| 'Lookup: Sys.SortedDict' | 1000 | 1000 | 141.16 ns | 1.373 ns | 1.285 ns | - | - | - | - | -| 'Lookup: LangExt.HashMap' | 1000 | 1000 | 482.30 ns | 2.993 ns | 2.499 ns | - | - | - | - | -| 'Lookup: LangExt.SortedMap' | 1000 | 1000 | 151.26 ns | 0.522 ns | 0.463 ns | - | - | - | - | -| 'Lookup: PersistentMap' | 1000 | 1000 | 25.14 ns | 0.100 ns | 0.089 ns | - | - | - | - | -| | | | | | | | | | | -| **'Build: Sys.ImmutableDict'** | **1000** | **100000** | **110,681,036.36 ns** | **2,111,588.232 ns** | **2,073,861.990 ns** | **285.7143** | **142.8571** | **-** | **6400072 B** | -| 'Build: LangExt.HashMap' | 1000 | 100000 | 97,557,350.10 ns | 551,991.120 ns | 516,332.837 ns | 2000.0000 | 1000.0000 | - | 33861848 B | -| 'Build: LangExt.SortedMap' | 1000 | 100000 | 64,549,795.52 ns | 1,182,362.259 ns | 1,105,982.391 ns | 250.0000 | 125.0000 | - | 5600088 B | -| 'Build: PersistentMap (Iterative)' | 1000 | 100000 | 67,619,915.03 ns | 537,449.664 ns | 502,730.749 ns | 22500.0000 | 15500.0000 | - | 377887656 B | -| 'Build: PersistentMap (Transient)' | 1000 | 100000 | 18,935,946.67 ns | 148,299.648 ns | 138,719.583 ns | 343.7500 | 250.0000 | - | 5797496 B | -| 'Lookup: Sys.ImmutableDict' | 1000 | 100000 | 468.15 ns | 4.581 ns | 4.285 ns | - | - | - | - | -| 'Lookup: Sys.SortedDict' | 1000 | 100000 | 314.21 ns | 0.812 ns | 0.720 ns | - | - | - | - | -| 'Lookup: LangExt.HashMap' | 1000 | 100000 | 485.12 ns | 3.011 ns | 2.817 ns | - | - | - | - | -| 'Lookup: LangExt.SortedMap' | 1000 | 100000 | 312.35 ns | 1.905 ns | 1.782 ns | - | - | - | - | -| 'Lookup: PersistentMap' | 1000 | 100000 | 45.20 ns | 0.272 ns | 0.254 ns | - | - | - | - | -| | | | | | | | | | | -| **'Build: Sys.ImmutableDict'** | **1000** | **1000000** | **1,243,324,259.58 ns** | **23,435,444.565 ns** | **26,048,434.545 ns** | **3000.0000** | **2000.0000** | **-** | **64006232 B** | -| 'Build: LangExt.HashMap' | 1000 | 1000000 | 1,622,230,008.71 ns | 12,545,963.874 ns | 11,121,670.194 ns | 22000.0000 | 20000.0000 | - | 371481912 B | -| 'Build: LangExt.SortedMap' | 1000 | 1000000 | 1,405,640,022.27 ns | 20,672,528.624 ns | 19,337,096.110 ns | 3000.0000 | 2000.0000 | - | 56000088 B | -| 'Build: PersistentMap (Iterative)' | 1000 | 1000000 | 1,576,250,726.60 ns | 21,132,287.760 ns | 19,767,155.091 ns | 250000.0000 | 134000.0000 | - | 4196398744 B | -| 'Build: PersistentMap (Transient)' | 1000 | 1000000 | 399,073,585.07 ns | 7,329,442.854 ns | 6,855,965.396 ns | 3000.0000 | 2000.0000 | - | 57944840 B | -| 'Lookup: Sys.ImmutableDict' | 1000 | 1000000 | 469.34 ns | 2.373 ns | 2.104 ns | - | - | - | - | -| 'Lookup: Sys.SortedDict' | 1000 | 1000000 | 328.66 ns | 1.561 ns | 1.384 ns | - | - | - | - | -| 'Lookup: LangExt.HashMap' | 1000 | 1000000 | 484.32 ns | 3.425 ns | 3.204 ns | - | - | - | - | -| 'Lookup: LangExt.SortedMap' | 1000 | 1000000 | 400.19 ns | 2.649 ns | 2.349 ns | - | - | - | - | -| 'Lookup: PersistentMap' | 1000 | 1000000 | 56.25 ns | 0.147 ns | 0.130 ns | - | - | - | - | diff --git a/PersistentMap/Benchmarks/gh.benchmarks.md b/PersistentMap/Benchmarks/gh.benchmarks.md deleted file mode 100644 index aaafdfe..0000000 --- a/PersistentMap/Benchmarks/gh.benchmarks.md +++ /dev/null @@ -1,78 +0,0 @@ -``` - -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 - DefaultJob : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4 - - -``` -| Method | Keysize | CollectionSize | Mean | Error | StdDev | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | -|----------------------------------- |----------|--------------- |--------------:|-------------:|-------------:|--------------:|--------:|---------:|--------:|----------:|------------:| -| **'Build: Sys.ImmutableDict'** | **10** | **1000** | **82,965.51 ns** | **1,541.386 ns** | **1,582.889 ns** | **6,986.62** | **146.96** | **3.7842** | **0.6104** | **64072 B** | **NA** | -| 'Build: LangExt.HashMap' | 10 | 1000 | 107,355.82 ns | 1,551.663 ns | 1,451.427 ns | 9,040.55 | 148.52 | 17.2119 | 2.4414 | 289808 B | NA | -| 'Build: LangExt.SortedMap' | 10 | 1000 | 228,660.43 ns | 2,218.079 ns | 1,852.196 ns | 19,255.74 | 243.15 | 3.1738 | 0.4883 | 56088 B | NA | -| 'Build: PersistentMap (Iterative)' | 10 | 1000 | 244,752.37 ns | 2,794.335 ns | 2,333.396 ns | 20,610.86 | 278.75 | 138.1836 | 15.6250 | 2314008 B | NA | -| 'Build: PersistentMap (Transient)' | 10 | 1000 | 86,370.48 ns | 1,150.505 ns | 1,076.183 ns | 7,273.35 | 113.63 | 3.5400 | 0.3662 | 59624 B | NA | -| 'Lookup: Sys.ImmutableDict' | 10 | 1000 | 11.88 ns | 0.130 ns | 0.122 ns | 1.00 | 0.01 | - | - | - | NA | -| 'Lookup: Sys.SortedDict' | 10 | 1000 | 129.81 ns | 1.686 ns | 1.494 ns | 10.93 | 0.16 | - | - | - | NA | -| 'Lookup: LangExt.HashMap' | 10 | 1000 | 24.52 ns | 0.293 ns | 0.274 ns | 2.07 | 0.03 | - | - | - | NA | -| 'Lookup: LangExt.SortedMap' | 10 | 1000 | 202.85 ns | 0.770 ns | 0.682 ns | 17.08 | 0.18 | - | - | - | NA | -| 'Lookup: PersistentMap' | 10 | 1000 | 25.24 ns | 0.159 ns | 0.148 ns | 2.13 | 0.02 | - | - | - | NA | -| | | | | | | | | | | | | -| **'Build: Sys.ImmutableDict'** | **100** | **1000** | **151,217.34 ns** | **1,687.298 ns** | **1,578.300 ns** | **2,930.42** | **31.69** | **3.6621** | **0.4883** | **64072 B** | **NA** | -| 'Build: LangExt.HashMap' | 100 | 1000 | 167,490.07 ns | 2,525.502 ns | 2,362.356 ns | 3,245.77 | 46.06 | 17.3340 | 2.1973 | 293096 B | NA | -| 'Build: LangExt.SortedMap' | 100 | 1000 | 228,731.62 ns | 4,424.010 ns | 4,733.641 ns | 4,432.57 | 90.96 | 3.1738 | 0.4883 | 56088 B | NA | -| 'Build: PersistentMap (Iterative)' | 100 | 1000 | 256,683.18 ns | 2,564.193 ns | 2,141.218 ns | 4,974.24 | 44.31 | 138.1836 | 15.1367 | 2316904 B | NA | -| 'Build: PersistentMap (Transient)' | 100 | 1000 | 87,260.94 ns | 1,667.741 ns | 1,712.648 ns | 1,691.02 | 32.92 | 3.6621 | 0.3662 | 62520 B | NA | -| 'Lookup: Sys.ImmutableDict' | 100 | 1000 | 51.60 ns | 0.263 ns | 0.205 ns | 1.00 | 0.01 | - | - | - | NA | -| 'Lookup: Sys.SortedDict' | 100 | 1000 | 126.22 ns | 0.747 ns | 0.662 ns | 2.45 | 0.02 | - | - | - | NA | -| 'Lookup: LangExt.HashMap' | 100 | 1000 | 65.88 ns | 0.353 ns | 0.295 ns | 1.28 | 0.01 | - | - | - | NA | -| 'Lookup: LangExt.SortedMap' | 100 | 1000 | 168.63 ns | 0.768 ns | 0.718 ns | 3.27 | 0.02 | - | - | - | NA | -| 'Lookup: PersistentMap' | 100 | 1000 | 26.67 ns | 0.149 ns | 0.132 ns | 0.52 | 0.00 | - | - | - | NA | -| | | | | | | | | | | | | -| **'Build: Sys.ImmutableDict'** | **1000** | **1000** | **858,405.87 ns** | **3,122.202 ns** | **2,437.610 ns** | **1,837.79** | **11.46** | **2.9297** | **-** | **64072 B** | **NA** | -| 'Build: LangExt.HashMap' | 1000 | 1000 | 712,616.81 ns | 3,284.251 ns | 2,742.498 ns | 1,525.66 | 10.25 | 16.6016 | 1.9531 | 293600 B | NA | -| 'Build: LangExt.SortedMap' | 1000 | 1000 | 227,785.60 ns | 2,218.172 ns | 1,966.352 ns | 487.67 | 4.90 | 3.1738 | 0.4883 | 56088 B | NA | -| 'Build: PersistentMap (Iterative)' | 1000 | 1000 | 249,242.56 ns | 4,789.243 ns | 7,313.681 ns | 533.61 | 15.71 | 138.1836 | 14.6484 | 2312560 B | NA | -| 'Build: PersistentMap (Transient)' | 1000 | 1000 | 85,297.82 ns | 1,186.402 ns | 990.700 ns | 182.62 | 2.29 | 3.4180 | 0.2441 | 58176 B | NA | -| 'Lookup: Sys.ImmutableDict' | 1000 | 1000 | 467.10 ns | 3.062 ns | 2.714 ns | 1.00 | 0.01 | - | - | - | NA | -| 'Lookup: Sys.SortedDict' | 1000 | 1000 | 131.87 ns | 1.521 ns | 1.348 ns | 0.28 | 0.00 | - | - | - | NA | -| 'Lookup: LangExt.HashMap' | 1000 | 1000 | 478.53 ns | 2.786 ns | 2.606 ns | 1.02 | 0.01 | - | - | - | NA | -| 'Lookup: LangExt.SortedMap' | 1000 | 1000 | 151.49 ns | 1.183 ns | 1.049 ns | 0.32 | 0.00 | - | - | - | NA | -| 'Lookup: PersistentMap' | 1000 | 1000 | 24.98 ns | 0.209 ns | 0.195 ns | 0.05 | 0.00 | - -Here are some better lookup benchmarks that do not just try to lookup the same index: - -| Method | CollectionSize | N | Mean | Error | StdDev | Allocated | -|-------------------------- |--------------- |----- |----------:|----------:|----------:|----------:| -| 'Cyclic: PersistentMap' | 1024 | 10 | 26.68 ns | 0.246 ns | 0.230 ns | - | -| 'Cyclic: Sys.Sorted' | 1024 | 10 | 153.12 ns | 1.591 ns | 1.410 ns | - | -| 'Cyclic: LangExt.HashMap' | 1024 | 10 | 24.80 ns | 0.140 ns | 0.131 ns | - | -| 'Cyclic: LangExt.Sorted' | 1024 | 10 | 180.45 ns | 1.695 ns | 1.415 ns | - | -| | | | | | | | -| 'Cyclic: PersistentMap' | 1024 | 100 | 27.09 ns | 0.142 ns | 0.126 ns | - | -| 'Cyclic: Sys.Sorted' | 1024 | 100 | 154.13 ns | 1.729 ns | 1.444 ns | - | -| 'Cyclic: LangExt.HashMap' | 1024 | 100 | 66.44 ns | 0.501 ns | 0.468 ns | - | -| 'Cyclic: LangExt.Sorted' | 1024 | 100 | 180.61 ns | 3.244 ns | 3.034 ns | - | -| | | | | | | | -| 'Cyclic: PersistentMap' | 1024 | 1000 | 26.84 ns | 0.131 ns | 0.110 ns | - | -| 'Cyclic: Sys.Sorted' | 1024 | 1000 | 171.48 ns | 1.828 ns | 1.710 ns | - | -| 'Cyclic: LangExt.HashMap' | 1024 | 1000 | 497.32 ns | 9.698 ns | 9.071 ns | - | -| 'Cyclic: LangExt.Sorted' | 1024 | 1000 | 180.88 ns | 2.297 ns | 1.918 ns | - | -| | | | | | | | -| 'Cyclic: PersistentMap' | 131072 | 10 | 103.80 ns | 1.740 ns | 1.628 ns | - | -| 'Cyclic: Sys.Sorted' | 131072 | 10 | 459.04 ns | 4.579 ns | 4.283 ns | - | -| 'Cyclic: LangExt.HashMap' | 131072 | 10 | 56.64 ns | 0.654 ns | 0.612 ns | - | -| 'Cyclic: LangExt.Sorted' | 131072 | 10 | 525.38 ns | 10.281 ns | 11.840 ns | - | -| | | | | | | | -| 'Cyclic: PersistentMap' | 131072 | 100 | 118.92 ns | 2.222 ns | 2.967 ns | - | -| 'Cyclic: Sys.Sorted' | 131072 | 100 | 552.77 ns | 10.983 ns | 12.648 ns | - | -| 'Cyclic: LangExt.HashMap' | 131072 | 100 | 169.08 ns | 1.478 ns | 1.234 ns | - | -| 'Cyclic: LangExt.Sorted' | 131072 | 100 | 588.64 ns | 11.473 ns | 11.782 ns | - | -| | | | | | | | -| 'Cyclic: PersistentMap' | 131072 | 1000 | 151.38 ns | 1.432 ns | 1.269 ns | - | -| 'Cyclic: Sys.Sorted' | 131072 | 1000 | 606.19 ns | 9.281 ns | 8.228 ns | - | -| 'Cyclic: LangExt.HashMap' | 131072 | 1000 | 732.79 ns | 6.556 ns | 5.812 ns | - | -| 'Cyclic: LangExt.Sorted' | 131072 | 1000 | 653.56 ns | 9.363 ns | 8.300 ns | - | diff --git a/PersistentMap/Benchmarks/intkeys.md b/PersistentMap/Benchmarks/intkeys.md deleted file mode 100644 index e99f19b..0000000 --- a/PersistentMap/Benchmarks/intkeys.md +++ /dev/null @@ -1,65 +0,0 @@ -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 | -