Skip to content

Conversation

@CoreyKaylor
Copy link
Owner

No description provided.

@github-actions
Copy link

github-actions bot commented Dec 23, 2025

Benchmark Results

No significant performance regressions detected

⚠️ Minor performance degradation (20-40%)

1 benchmarks showed minor slowdown

🚀 Improvements

50 benchmarks showed improvement (>20% faster)

All results (166 benchmarks)
Benchmark Baseline Current Change
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 256, Comparer: HashCode) 41584.66ns 51354.00ns ⚠️ +23.5%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 64, Comparer: Utf8String) 11024.66ns 12857.76ns ✅ +16.6%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 64, Comparer: ReverseBitwise) 173052.56ns 192708.58ns ✅ +11.4%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 256, Comparer: Default) 687249.84ns 755534.32ns ✅ +9.9%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 256, Comparer: ReverseLength) 30940.20ns 32774.41ns ✅ +5.9%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 256, Comparer: ReverseGuid) 31477.58ns 33123.13ns ✅ +5.2%
WriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 256, KeyOrder: Sequential) 721325.61ns 756837.06ns ✅ +4.9%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 256, Comparer: ReverseUtf8String) 30351.38ns 31750.48ns ✅ +4.6%
ReadBenchmarks.Read(OpsPerTransaction: 1, ValueSize: 64, KeyOrder: Sequential) 183.25ns 191.47ns ✅ +4.5%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 256, Comparer: ReverseUnsignedInt) 178337.56ns 185664.43ns ✅ +4.1%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 256, Comparer: Guid) 721678.57ns 749739.89ns ✅ +3.9%
GuidComparerBenchmarks.WriteGuids(OpsPerTransaction: 10000, Comparer: ReverseGuid) 2834139.20ns 2939384.91ns ✅ +3.7%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 8, OpsPerTransaction: 10000, Comparer: ReverseUnsignedInt) 1628973.14ns 1684538.77ns ✅ +3.4%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 256, Comparer: ReverseBitwise) 30278.48ns 31226.26ns ✅ +3.1%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 256, Comparer: ReverseSignedInt) 178101.67ns 182972.33ns ✅ +2.7%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 256, Comparer: Bitwise) 169799.81ns 173798.29ns ✅ +2.4%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 256, Comparer: Guid) 11174.28ns 11391.88ns ✅ +1.9%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 64, Comparer: Bitwise) 172043.23ns 175111.38ns ✅ +1.8%
ReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 8, KeyOrder: Sequential) 5639.35ns 5739.49ns ✅ +1.8%
ReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 256, KeyOrder: Sequential) 7089.57ns 7214.09ns ✅ +1.8%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 4, OpsPerTransaction: 10000, Comparer: SignedInt) 734186.55ns 745428.73ns ✅ +1.5%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 64, Comparer: Length) 11014.62ns 11176.74ns ✅ +1.5%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 256, Comparer: Length) 178209.88ns 180828.65ns ✅ +1.5%
ReadBenchmarks.Read(OpsPerTransaction: 1, ValueSize: 8, KeyOrder: Sequential) 184.56ns 187.25ns ✅ +1.5%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 64, Comparer: Bitwise) 10722.62ns 10867.13ns ✅ +1.3%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 256, Comparer: Utf8String) 169172.82ns 170819.31ns ✅ +1.0%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 256, Comparer: ReverseUtf8String) 172789.70ns 174470.67ns ✅ +1.0%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 256, Comparer: ReverseLength) 11319.79ns 11427.57ns ✅ +1.0%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 256, Comparer: ReverseBitwise) 172460.79ns 173992.17ns ✅ +0.9%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 64, Comparer: HashCode) 22336.93ns 22527.21ns ✅ +0.9%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 4, OpsPerTransaction: 10000, Comparer: ReverseSignedInt) 1748086.90ns 1762142.05ns ✅ +0.8%
ReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 64, KeyOrder: Sequential) 7069.02ns 7119.44ns ✅ +0.7%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 256, Comparer: HashCode) 22446.71ns 22588.17ns ✅ +0.6%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 8, OpsPerTransaction: 10000, Comparer: UnsignedInt) 549994.22ns 553291.75ns ✅ +0.6%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 64, Comparer: Guid) 173017.66ns 173924.91ns ✅ +0.5%
GuidComparerBenchmarks.WriteGuids(OpsPerTransaction: 10000, Comparer: Default) 2566471.75ns 2579660.56ns ✅ +0.5%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 64, Comparer: ReverseUtf8String) 170579.93ns 171403.28ns ✅ +0.5%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 64, Comparer: Utf8String) 171107.14ns 171244.51ns ✅ +0.1%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 256, Comparer: LengthOnly) 37406.29ns 37376.05ns ✅ -0.1%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 64, Comparer: ReverseLength) 11071.36ns 11031.68ns ✅ -0.4%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 64, Comparer: ReverseUnsignedInt) 10386.02ns 10339.04ns ✅ -0.5%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 256, Comparer: ReverseLength) 177907.55ns 177071.99ns ✅ -0.5%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 256, Comparer: Bitwise) 11041.37ns 10985.74ns ✅ -0.5%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 256, Comparer: SignedInt) 10480.00ns 10426.50ns ✅ -0.5%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 256, Comparer: HashCode) 338593.44ns 336654.48ns ✅ -0.6%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 64, Comparer: Default) 7073.82ns 7027.19ns ✅ -0.7%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 256, Comparer: ReverseSignedInt) 159813.63ns 158546.50ns ✅ -0.8%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 256, Comparer: Guid) 172274.15ns 170879.34ns ✅ -0.8%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 64, Comparer: HashCode) 337227.21ns 334333.10ns ✅ -0.9%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 64, Comparer: ReverseLength) 177901.24ns 176166.41ns ✅ -1.0%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 64, Comparer: ReverseSignedInt) 156058.88ns 154328.32ns ✅ -1.1%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 8, OpsPerTransaction: 10000, Comparer: SignedInt) 563520.91ns 557109.00ns ✅ -1.1%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 4, OpsPerTransaction: 10000, Comparer: Default) 2514524.62ns 2485824.20ns ✅ -1.1%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 8, OpsPerTransaction: 10000, Comparer: ReverseSignedInt) 1662945.96ns 1643007.77ns ✅ -1.2%
ReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 8, KeyOrder: Sequential) 122563.53ns 121090.93ns ✅ -1.2%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 256, Comparer: Default) 123639.65ns 121963.82ns ✅ -1.4%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 256, Comparer: ReverseUnsignedInt) 10646.31ns 10500.15ns ✅ -1.4%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 256, Comparer: SignedInt) 720824.77ns 710463.40ns ✅ -1.4%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 256, Comparer: ReverseUtf8String) 11203.56ns 11002.19ns ✅ -1.8%
GuidComparerBenchmarks.WriteGuids(OpsPerTransaction: 10000, Comparer: Bitwise) 3072278.14ns 3016741.81ns ✅ -1.8%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 256, Comparer: Utf8String) 11141.22ns 10939.34ns ✅ -1.8%
GuidComparerBenchmarks.WriteGuids(OpsPerTransaction: 10000, Comparer: Guid) 2801992.39ns 2748897.20ns ✅ -1.9%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 256, Comparer: LengthOnly) 3928.59ns 3853.79ns ✅ -1.9%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 256, Comparer: Default) 7432.93ns 7278.01ns ✅ -2.1%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 256, Comparer: ReverseBitwise) 11179.78ns 10945.74ns ✅ -2.1%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 64, Comparer: ReverseGuid) 11192.15ns 10946.24ns ✅ -2.2%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 64, Comparer: ReverseBitwise) 10941.91ns 10699.35ns ✅ -2.2%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 256, Comparer: ReverseGuid) 175983.55ns 171923.51ns ✅ -2.3%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 64, Comparer: ReverseUtf8String) 10975.55ns 10706.60ns ✅ -2.5%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 64, Comparer: Guid) 11086.14ns 10812.79ns ✅ -2.5%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 64, Comparer: Length) 181727.24ns 177078.78ns ✅ -2.6%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 256, Comparer: ReverseSignedInt) 10833.86ns 10548.91ns ✅ -2.6%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 256, Comparer: ReverseGuid) 11560.67ns 11233.34ns ✅ -2.8%
ReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 64, KeyOrder: Sequential) 120983.88ns 117430.88ns ✅ -2.9%
ReadBenchmarks.Read(OpsPerTransaction: 1, ValueSize: 256, KeyOrder: Sequential) 201.75ns 195.76ns ✅ -3.0%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 64, Comparer: ReverseGuid) 175590.77ns 170124.90ns ✅ -3.1%
ReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 256, KeyOrder: Sequential) 122416.92ns 118573.96ns ✅ -3.1%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 64, Comparer: UnsignedInt) 10489.76ns 10148.80ns ✅ -3.3%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 64, Comparer: SignedInt) 10536.90ns 10192.96ns ✅ -3.3%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 4, OpsPerTransaction: 10000, Comparer: UnsignedInt) 746707.07ns 722256.18ns ✅ -3.3%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 256, Comparer: UnsignedInt) 10685.39ns 10329.73ns ✅ -3.3%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 8, OpsPerTransaction: 10000, Comparer: Default) 2183337.98ns 2109081.81ns ✅ -3.4%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 256, Comparer: Utf8String) 716227.85ns 690925.30ns ✅ -3.5%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 64, Comparer: LengthOnly) 38069.65ns 36723.69ns ✅ -3.5%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 4, OpsPerTransaction: 10000, Comparer: ReverseUnsignedInt) 1816500.85ns 1747548.92ns ✅ -3.8%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 64, Comparer: UnsignedInt) 157063.06ns 150830.39ns ✅ -4.0%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 256, Comparer: SignedInt) 160067.95ns 153534.52ns ✅ -4.1%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 64, Comparer: ReverseSignedInt) 10793.96ns 10349.46ns ✅ -4.1%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 256, Comparer: ReverseUnsignedInt) 164441.15ns 157347.01ns ✅ -4.3%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 256, Comparer: UnsignedInt) 159910.74ns 152715.45ns ✅ -4.5%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 64, Comparer: Default) 122686.56ns 117100.50ns ✅ -4.6%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 64, Comparer: ReverseUnsignedInt) 161595.40ns 154125.52ns ✅ -4.6%
ComparerReadBenchmarks.Read(OpsPerTransaction: 1000, ValueSize: 64, Comparer: SignedInt) 158612.63ns 149814.15ns ✅ -5.5%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 256, Comparer: UnsignedInt) 741757.97ns 697773.19ns ✅ -5.9%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 256, Comparer: Length) 799334.65ns 718772.87ns ✅ -10.1%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 64, Comparer: Utf8String) 227248.76ns 203208.49ns ✅ -10.6%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 256, Comparer: Length) 12755.27ns 11391.92ns ✅ -10.7%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 8, OpsPerTransaction: 1000, Comparer: SignedInt) 569353.22ns 496370.68ns ✅ -12.8%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 256, Comparer: Bitwise) 833768.23ns 719805.91ns ✅ -13.7%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 64, Comparer: Default) 565957.09ns 480575.57ns ✅ -15.1%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 8, OpsPerTransaction: 1000, Comparer: ReverseUnsignedInt) 693106.90ns 588130.10ns ✅ -15.1%
GuidComparerBenchmarks.WriteGuids(OpsPerTransaction: 1000, Comparer: Guid) 672941.64ns 570092.21ns ✅ -15.3%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 256, Comparer: ReverseUnsignedInt) 295652.15ns 249932.13ns ✅ -15.5%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 64, Comparer: Bitwise) 620551.46ns 523411.61ns ✅ -15.7%
GuidComparerBenchmarks.WriteGuids(OpsPerTransaction: 1000, Comparer: Bitwise) 694393.93ns 584063.03ns ✅ -15.9%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 64, Comparer: ReverseUnsignedInt) 656324.87ns 549959.66ns ✅ -16.2%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 8, OpsPerTransaction: 1000, Comparer: ReverseSignedInt) 665098.10ns 556947.94ns ✅ -16.3%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 256, Comparer: ReverseUtf8String) 291315.41ns 243751.07ns ✅ -16.3%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 256, Comparer: UnsignedInt) 273874.71ns 227315.63ns ✅ -17.0%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 64, Comparer: ReverseBitwise) 670746.03ns 554529.36ns ✅ -17.3%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 256, Comparer: ReverseSignedInt) 299676.24ns 243938.93ns ✅ -18.6%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 64, Comparer: Length) 257314.22ns 208326.15ns ✅ -19.0%
GuidComparerBenchmarks.WriteGuids(OpsPerTransaction: 1000, Comparer: Default) 650674.24ns 526377.53ns ✅ -19.1%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 64, Comparer: HashCode) 850541.04ns 682689.88ns ✅ -19.7%
GuidComparerBenchmarks.WriteGuids(OpsPerTransaction: 1000, Comparer: ReverseGuid) 693468.78ns 556500.84ns ✅ -19.8%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 4, OpsPerTransaction: 1000, Comparer: ReverseUnsignedInt) 662877.70ns 531333.74ns ✅ -19.8%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 8, OpsPerTransaction: 1000, Comparer: UnsignedInt) 614805.34ns 485759.37ns 🚀 -21.0%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 64, Comparer: Default) 246091.43ns 194163.94ns 🚀 -21.1%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 64, Comparer: ReverseSignedInt) 255244.99ns 200252.27ns 🚀 -21.5%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 64, Comparer: ReverseSignedInt) 699332.84ns 548373.38ns 🚀 -21.6%
WriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 64, KeyOrder: Sequential) 635054.51ns 495700.74ns 🚀 -21.9%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 64, Comparer: Utf8String) 667684.14ns 518476.92ns 🚀 -22.3%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 64, Comparer: ReverseGuid) 703504.54ns 544685.33ns 🚀 -22.6%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 64, Comparer: Bitwise) 254112.10ns 196287.12ns 🚀 -22.8%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 8, OpsPerTransaction: 1000, Comparer: Default) 677687.32ns 522892.81ns 🚀 -22.8%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 4, OpsPerTransaction: 1000, Comparer: UnsignedInt) 624260.91ns 479755.72ns 🚀 -23.1%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 64, Comparer: Guid) 257772.11ns 197956.59ns 🚀 -23.2%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 4, OpsPerTransaction: 1000, Comparer: SignedInt) 612829.15ns 468851.54ns 🚀 -23.5%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 64, Comparer: Length) 697251.83ns 532168.34ns 🚀 -23.7%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 64, Comparer: ReverseLength) 726302.09ns 553473.38ns 🚀 -23.8%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 64, Comparer: Guid) 698940.14ns 529257.69ns 🚀 -24.3%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 4, OpsPerTransaction: 1000, Comparer: ReverseSignedInt) 720589.86ns 543462.59ns 🚀 -24.6%
ComparerReadBenchmarks.Read(OpsPerTransaction: 100, ValueSize: 64, Comparer: LengthOnly) 5198.83ns 3881.80ns 🚀 -25.3%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 64, Comparer: SignedInt) 623170.05ns 465177.70ns 🚀 -25.4%
IntegerComparerBenchmarks.WriteIntegers(KeySize: 4, OpsPerTransaction: 1000, Comparer: Default) 643875.31ns 477659.82ns 🚀 -25.8%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 64, Comparer: ReverseUtf8String) 718132.34ns 530577.03ns 🚀 -26.1%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 256, Comparer: Bitwise) 299838.13ns 221025.18ns 🚀 -26.3%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 64, Comparer: UnsignedInt) 664618.38ns 484883.46ns 🚀 -27.0%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 64, Comparer: HashCode) 294261.60ns 212708.06ns 🚀 -27.7%
WriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 8, KeyOrder: Sequential) 557982.09ns 392347.94ns 🚀 -29.7%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 64, Comparer: UnsignedInt) 275087.50ns 189607.58ns 🚀 -31.1%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 256, Comparer: SignedInt) 331790.42ns 226828.46ns 🚀 -31.6%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 256, Comparer: HashCode) 362687.29ns 247935.48ns 🚀 -31.6%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 256, Comparer: LengthOnly) 359563.27ns 242055.10ns 🚀 -32.7%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 256, Comparer: Utf8String) 348493.88ns 226255.65ns 🚀 -35.1%
WriteBenchmarks.Write(OpsPerTransaction: 1, ValueSize: 64, KeyOrder: Sequential) 299692.31ns 194366.12ns 🚀 -35.1%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 64, Comparer: ReverseGuid) 312849.56ns 201218.62ns 🚀 -35.7%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 256, Comparer: Guid) 361031.80ns 232169.45ns 🚀 -35.7%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 64, Comparer: ReverseBitwise) 333562.15ns 208554.49ns 🚀 -37.5%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 256, Comparer: ReverseBitwise) 389974.55ns 241570.75ns 🚀 -38.1%
WriteBenchmarks.Write(OpsPerTransaction: 1, ValueSize: 256, KeyOrder: Sequential) 294800.79ns 178009.91ns 🚀 -39.6%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 256, Comparer: Length) 382220.05ns 228096.81ns 🚀 -40.3%
WriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 8, KeyOrder: Sequential) 302461.89ns 180438.90ns 🚀 -40.3%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 64, Comparer: ReverseLength) 342769.12ns 201423.22ns 🚀 -41.2%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 256, Comparer: Default) 392437.69ns 228495.03ns 🚀 -41.8%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 256, Comparer: LengthOnly) 314136.81ns 182520.21ns 🚀 -41.9%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 64, Comparer: ReverseUnsignedInt) 353138.15ns 200697.83ns 🚀 -43.2%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 256, Comparer: ReverseGuid) 431032.36ns 243502.59ns 🚀 -43.5%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 256, Comparer: ReverseLength) 432537.16ns 241134.38ns 🚀 -44.3%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 1000, ValueSize: 64, Comparer: LengthOnly) 429558.63ns 235455.08ns 🚀 -45.2%
WriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 256, KeyOrder: Sequential) 419832.52ns 224837.53ns 🚀 -46.4%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 64, Comparer: ReverseUtf8String) 391224.72ns 202621.35ns 🚀 -48.2%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 64, Comparer: LengthOnly) 336257.83ns 173783.59ns 🚀 -48.3%
WriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 64, KeyOrder: Sequential) 401650.39ns 204383.62ns 🚀 -49.1%
WriteBenchmarks.Write(OpsPerTransaction: 1, ValueSize: 8, KeyOrder: Sequential) 334666.36ns 169959.03ns 🚀 -49.2%
ComparerWriteBenchmarks.Write(OpsPerTransaction: 100, ValueSize: 64, Comparer: SignedInt) 381618.72ns 191140.85ns 🚀 -49.9%

@CoreyKaylor
Copy link
Owner Author

@sebastienros or @AlgorithmsAreCool any objections to this change? I've been on the fence for a while, but leaning towards explicitness lately after having spent a decent amount of time with Kotlin where that's the default. I'm honestly not sure what the general trend is in the broader dotnet community is with nullable types.

@AlgorithmsAreCool
Copy link
Collaborator

I see these as good changes. I am a big proponent of nullable annotations in C# (coming from a non-null F# background 😇)

@CoreyKaylor CoreyKaylor merged commit ffcfdc7 into main Dec 24, 2025
4 checks passed
@CoreyKaylor CoreyKaylor deleted the nullable branch December 24, 2025 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants