Skip to content

docs(CuckooFilter): correct when IsFull clears - #293

Merged
marius-bughiu merged 1 commit into
mainfrom
chore/code-review/cuckoofilter-isfull-doc
Jul 23, 2026
Merged

docs(CuckooFilter): correct when IsFull clears#293
marius-bughiu merged 1 commit into
mainfrom
chore/code-review/cuckoofilter-isfull-doc

Conversation

@marius-bughiu

Copy link
Copy Markdown
Owner

What

Corrected the CuckooFilter.IsFull XML summary, which claimed "a successful Remove clears it." Reworded to state the precise condition under which IsFull (i.e. _hasVictim) actually clears.

Why

IsFull returns _hasVictim. On a successful Remove the filter only stops being full in two cases:

  1. The removed element is the parked victim (the _hasVictim && _victimFingerprint == fingerprint && ... branch clears it directly), or
  2. The removal frees a slot in one of the victim's two candidate buckets, so RelocateVictimIfPossible() can re-home the parked fingerprint.

A Remove that succeeds against an unrelated bucket leaves both victim-candidate buckets full, so RelocateVictimIfPossible() is a no-op and _hasVictim/IsFull stays true. The old wording ("a successful Remove clears it") implied any removal recovers the filter, which is not the case.

Doc-only change; no behavioral impact.

Test plan

  • dotnet build — succeeds, 0 errors
  • Doc-only change; runtime behavior and existing tests unaffected

IsFull tracks _hasVictim. A successful Remove only clears it when it
removes the parked victim itself, or frees a slot in one of the victim's
two candidate buckets so RelocateVictimIfPossible can re-home it. A
Remove elsewhere in the table leaves _hasVictim (and thus IsFull) true.
The doc claimed any successful Remove clears it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 23, 2026 00:15
@marius-bughiu marius-bughiu added the automated:code-review PR or issue opened by celerity---code-review sweep label Jul 23, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR corrects the XML documentation for CuckooFilter.IsFull to accurately describe when the “full” state clears, aligning the docs with the victim-cache behavior implemented by _hasVictim and RelocateVictimIfPossible().

Changes:

  • Reworded IsFull summary to clarify that Remove clears fullness only when it removes the parked victim or enables relocating it into one of its candidate buckets.
  • Removed the prior (over-broad) claim that any successful Remove clears IsFull.

@github-actions

Copy link
Copy Markdown

Coverage

Metric Value
Line 98.55% (6571/6668)
Branch 97.01% (2759/2844)
Files below 100% line coverage
File Line Branch
src/Celerity/Collections/TopKEntry.cs 80% n/a
src/Celerity/Collections/XorFilter.cs 94.29% 90%
src/Celerity/Collections/EnumMap.cs 95.09% 92.19%
src/Celerity/Collections/IndexedPriorityQueue.cs 96.23% 90.91%
src/Celerity/Collections/CuckooFilter.cs 96.6% 90.38%

@github-actions

Copy link
Copy Markdown

Benchmarks

2 regressions ⚠️ vs main, 5 improvements ✅ (rows past ±10% beyond noise).

Highlights

Benchmark This PR StdDev main Δ
DequeBenchmark.Deque_Queue(ItemCount: 1000) 32.10 μs 963.5 ns 38.15 μs -15.9% ✅
CelerityMultiSetBenchmark.CelerityMultiSet_Remove(ItemCount: 100000) 863.55 μs 270.78 μs 1.48 ms -41.6% ✅
LruCacheBenchmark.Dictionary_GetMissing(ItemCount: 1000) 4.22 μs 6.0 ns 4.65 μs -9.3% ✅
PooledCelerityDictionaryBenchmark.PooledCelerityDictionary_Lookup(ItemCount: 100000) 655.77 μs 24.03 μs 574.08 μs +14.2% ⚠️
PooledCelerityDictionaryBenchmark.PooledCelerityDictionary_Remove(ItemCount: 100000) 3.10 ms 3.22 ms 8.88 ms -65.1% ✅
HashCachingSetBenchmark.HashCachingSet_ContainsMissing(ItemCount: 1000) 3.18 μs 226.1 ns 2.79 μs +14.0% ⚠️
IntDictionaryBenchmark.IntDictionary_Lookup(ItemCount: 100000) 590.00 μs 11.89 μs 703.50 μs -16.1% ✅
Collections (384)
Benchmark This PR StdDev main Δ
TopKSketchBenchmark.Dictionary_Add(ItemCount: 1000) 14.31 μs 363.7 ns 13.82 μs +3.6%
TopKSketchBenchmark.TopKSketch_Add(ItemCount: 1000) 82.66 μs 822.5 ns 82.01 μs +0.8%
TopKSketchBenchmark.Dictionary_Add(ItemCount: 100000) 3.67 ms 197.86 μs 3.41 ms +7.6%
TopKSketchBenchmark.TopKSketch_Add(ItemCount: 100000) 13.68 ms 22.95 μs 13.63 ms +0.3%
TopKSketchBenchmark.Dictionary_TopK(ItemCount: 1000) 33.6 ns 0.4 ns 33.0 ns +1.8%
TopKSketchBenchmark.TopKSketch_TopK(ItemCount: 1000) 1.34 μs 14.8 ns 1.32 μs +1.4%
TopKSketchBenchmark.Dictionary_TopK(ItemCount: 100000) 34.2 ns 0.5 ns 32.1 ns +6.5%
TopKSketchBenchmark.TopKSketch_TopK(ItemCount: 100000) 1.29 μs 16.7 ns 1.26 μs +2.3%
CountMinSketchBenchmark.Dictionary_Add(ItemCount: 1000) 10.43 μs 124.1 ns 10.33 μs +0.9%
LongSetBenchmark.HashSet_Add(ItemCount: 1000) 13.78 μs 313.0 ns 12.83 μs +7.4%
CountMinSketchBenchmark.CountMinSketch_Add(ItemCount: 1000) 10.13 μs 72.6 ns 10.06 μs +0.6%
LongSetBenchmark.LongSet_Add(ItemCount: 1000) 9.43 μs 78.4 ns 9.16 μs +2.9%
CountMinSketchBenchmark.Dictionary_Add(ItemCount: 100000) 1.46 ms 13.52 μs 1.42 ms +2.7%
LongSetBenchmark.HashSet_Add(ItemCount: 100000) 4.49 ms 151.50 μs 4.59 ms -2.2%
CountMinSketchBenchmark.CountMinSketch_Add(ItemCount: 100000) 929.36 μs 1.70 μs 923.48 μs +0.6%
LongSetBenchmark.LongSet_Add(ItemCount: 100000) 6.14 ms 58.36 μs 6.10 ms +0.8%
LongSetBenchmark.HashSet_Contains(ItemCount: 1000) 4.75 μs 4.0 ns 4.75 μs +0.0%
LongSetBenchmark.LongSet_Contains(ItemCount: 1000) 2.00 μs 17.3 ns 2.00 μs +0.1%
LongSetBenchmark.HashSet_Contains(ItemCount: 100000) 1.64 ms 6.76 μs 1.63 ms +1.1%
LongSetBenchmark.LongSet_Contains(ItemCount: 100000) 639.55 μs 1.39 μs 638.08 μs +0.2%
CelerityMultiSetBenchmark.Dictionary_Count(ItemCount: 1000) 9.92 μs 24.0 ns 9.89 μs +0.3%
CelerityMultiSetBenchmark.CelerityMultiSet_Count(ItemCount: 1000) 5.55 μs 33.7 ns 5.87 μs -5.5%
CelerityMultiSetBenchmark.Dictionary_Count(ItemCount: 100000) 1.45 ms 10.22 μs 1.46 ms -1.0%
CelerityMultiSetBenchmark.CelerityMultiSet_Count(ItemCount: 100000) 697.18 μs 5.70 μs 703.35 μs -0.9%
DequeBenchmark.LinkedList_Enumerate(ItemCount: 1000) 1.37 μs 3.3 ns 1.37 μs +0.2%
DequeBenchmark.Deque_Enumerate(ItemCount: 1000) 941.9 ns 0.9 ns 941.9 ns -0.0%
DequeBenchmark.LinkedList_Enumerate(ItemCount: 100000) 135.16 μs 212.4 ns 135.11 μs +0.0%
DequeBenchmark.Deque_Enumerate(ItemCount: 100000) 93.72 μs 40.2 ns 93.84 μs -0.1%
CountMinSketchBenchmark.Dictionary_Estimate(ItemCount: 1000) 4.37 μs 2.7 ns 4.38 μs -0.1%
CountMinSketchBenchmark.CountMinSketch_Estimate(ItemCount: 1000) 10.07 μs 14.2 ns 10.07 μs -0.1%
CountMinSketchBenchmark.Dictionary_Estimate(ItemCount: 100000) 491.23 μs 2.60 μs 506.52 μs -3.0%
CountMinSketchBenchmark.CountMinSketch_Estimate(ItemCount: 100000) 2.01 ms 38.77 μs 1.97 ms +1.8%
HashCachingDictionaryBenchmark.Dictionary_Insert(ItemCount: 1000) 15.09 μs 1.88 μs 14.72 μs +2.5%
HashCachingDictionaryBenchmark.HashCachingDictionary_Insert(ItemCount: 1000) 11.72 μs 225.3 ns 11.71 μs +0.1%
HashCachingDictionaryBenchmark.Dictionary_Insert(ItemCount: 100000) 4.77 ms 67.53 μs 4.72 ms +1.0%
HashCachingDictionaryBenchmark.HashCachingDictionary_Insert(ItemCount: 100000) 6.56 ms 261.85 μs 6.56 ms -0.0%
CelerityMultiSetBenchmark.Dictionary_Lookup(ItemCount: 1000) 4.68 μs 6.4 ns 4.68 μs +0.0%
HashCachingDictionaryBenchmark.Dictionary_Lookup(ItemCount: 1000) 4.78 μs 59.6 ns 4.72 μs +1.1%
CelerityMultiSetBenchmark.CelerityMultiSet_Lookup(ItemCount: 1000) 1.62 μs 9.6 ns 1.61 μs +0.3%
HashCachingDictionaryBenchmark.HashCachingDictionary_Lookup(ItemCount: 1000) 2.66 μs 5.3 ns 2.72 μs -2.0%
CelerityMultiSetBenchmark.Dictionary_Lookup(ItemCount: 100000) 612.79 μs 1.93 μs 631.80 μs -3.0%
HashCachingDictionaryBenchmark.Dictionary_Lookup(ItemCount: 100000) 1.56 ms 46.71 μs 1.61 ms -2.6%
CelerityMultiSetBenchmark.CelerityMultiSet_Lookup(ItemCount: 100000) 191.13 μs 283.8 ns 191.56 μs -0.2%
HashCachingDictionaryBenchmark.HashCachingDictionary_Lookup(ItemCount: 100000) 814.16 μs 3.48 μs 813.44 μs +0.1%
DequeBenchmark.LinkedList_PushFront(ItemCount: 1000) 41.41 μs 6.70 μs 42.92 μs -3.5%
DequeBenchmark.Deque_PushFront(ItemCount: 1000) 22.91 μs 4.32 μs 24.51 μs -6.5%
DequeBenchmark.LinkedList_PushFront(ItemCount: 100000) 1.79 ms 19.09 μs 1.78 ms +0.5%
DequeBenchmark.Deque_PushFront(ItemCount: 100000) 631.76 μs 34.64 μs 635.23 μs -0.5%
DequeBenchmark.LinkedList_Queue(ItemCount: 1000) 63.35 μs 2.67 μs 60.86 μs +4.1%
DequeBenchmark.Deque_Queue(ItemCount: 1000) 32.10 μs 963.5 ns 38.15 μs -15.9% ✅
DequeBenchmark.LinkedList_Queue(ItemCount: 100000) 4.11 ms 30.14 μs 4.18 ms -1.7%
DequeBenchmark.Deque_Queue(ItemCount: 100000) 439.07 μs 37.31 μs 459.32 μs -4.4%
CelerityMultiSetBenchmark.Dictionary_Remove(ItemCount: 1000) 53.60 μs 4.42 μs 51.39 μs +4.3%
HashCachingDictionaryBenchmark.Dictionary_Remove(ItemCount: 1000) 80.92 μs 7.37 μs 82.67 μs -2.1%
LongSetBenchmark.HashSet_Remove(ItemCount: 1000) 82.88 μs 7.07 μs 79.43 μs +4.3%
CelerityMultiSetBenchmark.CelerityMultiSet_Remove(ItemCount: 1000) 97.27 μs 8.16 μs 100.56 μs -3.3%
HashCachingDictionaryBenchmark.HashCachingDictionary_Remove(ItemCount: 1000) 120.38 μs 12.47 μs 111.34 μs +8.1%
LongSetBenchmark.LongSet_Remove(ItemCount: 1000) 86.45 μs 6.08 μs 82.23 μs +5.1%
CelerityMultiSetBenchmark.Dictionary_Remove(ItemCount: 100000) 535.90 μs 13.91 μs 543.23 μs -1.3%
HashCachingDictionaryBenchmark.Dictionary_Remove(ItemCount: 100000) 2.01 ms 76.00 μs 2.05 ms -1.8%
LongSetBenchmark.HashSet_Remove(ItemCount: 100000) 1.96 ms 15.78 μs 1.98 ms -1.0%
CelerityMultiSetBenchmark.CelerityMultiSet_Remove(ItemCount: 100000) 863.55 μs 270.78 μs 1.48 ms -41.6% ✅
HashCachingDictionaryBenchmark.HashCachingDictionary_Remove(ItemCount: 100000) 1.76 ms 28.94 μs 1.76 ms +0.0%
LongSetBenchmark.LongSet_Remove(ItemCount: 100000) 1.45 ms 24.48 μs 1.42 ms +1.6%
IntSetBenchmark.HashSet_Add(ItemCount: 1000) 13.22 μs 198.6 ns 14.10 μs -6.3%
SwissSetBenchmark.HashSet_Add(ItemCount: 1000) 14.16 μs 410.1 ns 14.25 μs -0.6%
IntSetBenchmark.IntSet_Add(ItemCount: 1000) 8.65 μs 59.3 ns 8.84 μs -2.2%
SwissSetBenchmark.SwissSet_Add(ItemCount: 1000) 20.01 μs 35.9 ns 20.12 μs -0.6%
IntSetBenchmark.HashSet_Add(ItemCount: 100000) 4.40 ms 307.04 μs 4.27 ms +3.0%
SwissSetBenchmark.HashSet_Add(ItemCount: 100000) 4.06 ms 162.86 μs 3.93 ms +3.3%
IntSetBenchmark.IntSet_Add(ItemCount: 100000) 3.25 ms 74.02 μs 3.20 ms +1.7%
SwissSetBenchmark.SwissSet_Add(ItemCount: 100000) 3.68 ms 131.66 μs 3.63 ms +1.4%
BitSetBenchmark.BitArray_And(ItemCount: 1024) 64.2 ns 0.7 ns 64.7 ns -0.9%
BitSetBenchmark.BitSet_And(ItemCount: 1024) 992.2 ns 0.6 ns 993.0 ns -0.1%
BitSetBenchmark.BitArray_And(ItemCount: 1000000) 53.53 μs 1.94 μs 54.31 μs -1.4%
BitSetBenchmark.BitSet_And(ItemCount: 1000000) 4.59 ms 3.86 μs 4.58 ms +0.0%
FrozenCeleritySetBenchmark.FrozenSet_Build(ItemCount: 1000) 161.83 μs 222.7 ns 162.61 μs -0.5%
FrozenCeleritySetBenchmark.FrozenCeleritySet_Build(ItemCount: 1000) 3.37 ms 104.66 μs 3.62 ms -6.8%
FrozenCeleritySetBenchmark.FrozenSet_Build(ItemCount: 100000) 28.59 ms 251.39 μs 29.29 ms -2.4%
FrozenCeleritySetBenchmark.FrozenCeleritySet_Build(ItemCount: 100000) 1.61 s 63.02 ms 1.65 s -2.4%
FrozenCeleritySetBenchmark.FrozenSet_Contains(ItemCount: 1000) 5.79 μs 6.5 ns 5.80 μs -0.2%
IntSetBenchmark.HashSet_Contains(ItemCount: 1000) 4.02 μs 4.8 ns 4.02 μs -0.0%
SwissSetBenchmark.HashSet_Contains(ItemCount: 1000) 4.04 μs 7.6 ns 4.05 μs -0.4%
FrozenCeleritySetBenchmark.FrozenCeleritySet_Contains(ItemCount: 1000) 84.49 μs 1.08 μs 89.03 μs -5.1%
IntSetBenchmark.IntSet_Contains(ItemCount: 1000) 1.76 μs 22.3 ns 1.76 μs +0.2%
SwissSetBenchmark.SwissSet_Contains(ItemCount: 1000) 2.99 μs 36.3 ns 3.02 μs -1.2%
FrozenCeleritySetBenchmark.FrozenSet_Contains(ItemCount: 100000) 2.09 ms 22.78 μs 2.12 ms -1.4%
IntSetBenchmark.HashSet_Contains(ItemCount: 100000) 1.44 ms 1.79 μs 1.44 ms +0.1%
SwissSetBenchmark.HashSet_Contains(ItemCount: 100000) 1.36 ms 48.58 μs 1.37 ms -0.5%
FrozenCeleritySetBenchmark.FrozenCeleritySet_Contains(ItemCount: 100000) 7.50 ms 48.74 μs 7.40 ms +1.3%
IntSetBenchmark.IntSet_Contains(ItemCount: 100000) 535.80 μs 2.82 μs 533.58 μs +0.4%
SwissSetBenchmark.SwissSet_Contains(ItemCount: 100000) 451.54 μs 6.17 μs 456.46 μs -1.1%
SwissSetBenchmark.HashSet_ContainsMissing(ItemCount: 1000) 3.93 μs 47.4 ns 3.95 μs -0.3%
SwissSetBenchmark.SwissSet_ContainsMissing(ItemCount: 1000) 2.66 μs 74.6 ns 2.74 μs -2.6%
SwissSetBenchmark.HashSet_ContainsMissing(ItemCount: 100000) 1.84 ms 8.84 μs 1.85 ms -0.5%
SwissSetBenchmark.SwissSet_ContainsMissing(ItemCount: 100000) 361.17 μs 610.1 ns 360.32 μs +0.2%
IndexedPriorityQueueBenchmark.PriorityQueue_DecreaseKey(ItemCount: 1000) 168.58 μs 1.14 μs 163.15 μs +3.3%
IndexedPriorityQueueBenchmark.IndexedPriorityQueue_DecreaseKey(ItemCount: 1000) 248.71 μs 507.0 ns 249.11 μs -0.2%
IndexedPriorityQueueBenchmark.PriorityQueue_DecreaseKey(ItemCount: 100000) 34.39 ms 540.03 μs 34.24 ms +0.4%
IndexedPriorityQueueBenchmark.IndexedPriorityQueue_DecreaseKey(ItemCount: 100000) 49.08 ms 216.87 μs 48.66 ms +0.9%
IndexedPriorityQueueBenchmark.PriorityQueue_Enqueue(ItemCount: 1000) 4.87 μs 62.8 ns 4.92 μs -1.1%
IndexedPriorityQueueBenchmark.IndexedPriorityQueue_Enqueue(ItemCount: 1000) 26.29 μs 132.4 ns 26.39 μs -0.4%
IndexedPriorityQueueBenchmark.PriorityQueue_Enqueue(ItemCount: 100000) 1.08 ms 8.60 μs 1.08 ms +0.2%
IndexedPriorityQueueBenchmark.IndexedPriorityQueue_Enqueue(ItemCount: 100000) 5.88 ms 94.50 μs 5.67 ms +3.8%
LruCacheBenchmark.Dictionary_Get(ItemCount: 1000) 28.32 μs 1.16 μs 26.36 μs +7.4%
LruCacheBenchmark.LruCache_Get(ItemCount: 1000) 5.82 μs 30.4 ns 5.68 μs +2.6%
LruCacheBenchmark.Dictionary_Get(ItemCount: 100000) 26.86 μs 904.8 ns 25.72 μs +4.4%
LruCacheBenchmark.LruCache_Get(ItemCount: 100000) 5.98 μs 18.3 ns 6.16 μs -2.9%
LruCacheBenchmark.Dictionary_GetMissing(ItemCount: 1000) 4.22 μs 6.0 ns 4.65 μs -9.3% ✅
LruCacheBenchmark.LruCache_GetMissing(ItemCount: 1000) 3.40 μs 5.5 ns 3.40 μs -0.0%
LruCacheBenchmark.Dictionary_GetMissing(ItemCount: 100000) 499.52 μs 10.05 μs 539.40 μs -7.4%
LruCacheBenchmark.LruCache_GetMissing(ItemCount: 100000) 1.43 ms 1.49 μs 1.43 ms -0.1%
CelerityMultiMapBenchmark.Dictionary_Insert(ItemCount: 1000) 29.68 μs 437.7 ns 29.93 μs -0.8%
CelerityMultiMapBenchmark.CelerityMultiMap_Insert(ItemCount: 1000) 38.91 μs 451.2 ns 39.30 μs -1.0%
CelerityMultiMapBenchmark.Dictionary_Insert(ItemCount: 100000) 12.07 ms 76.70 μs 12.02 ms +0.4%
CelerityMultiMapBenchmark.CelerityMultiMap_Insert(ItemCount: 100000) 16.67 ms 230.28 μs 16.70 ms -0.2%
CelerityMultiMapBenchmark.Dictionary_Lookup(ItemCount: 1000) 4.89 μs 31.7 ns 4.96 μs -1.5%
CelerityMultiMapBenchmark.CelerityMultiMap_Lookup(ItemCount: 1000) 2.14 μs 7.3 ns 2.14 μs +0.3%
CelerityMultiMapBenchmark.Dictionary_Lookup(ItemCount: 100000) 1.71 ms 48.38 μs 1.75 ms -2.1%
CelerityMultiMapBenchmark.CelerityMultiMap_Lookup(ItemCount: 100000) 850.43 μs 3.06 μs 851.84 μs -0.2%
BitSetBenchmark.BitArray_Or(ItemCount: 1024) 63.9 ns 0.7 ns 65.0 ns -1.7%
BitSetBenchmark.BitSet_Or(ItemCount: 1024) 994.9 ns 2.4 ns 994.9 ns -0.0%
BitSetBenchmark.BitArray_Or(ItemCount: 1000000) 54.56 μs 776.9 ns 54.49 μs +0.1%
BitSetBenchmark.BitSet_Or(ItemCount: 1000000) 4.59 ms 2.25 μs 4.58 ms +0.0%
BitSetBenchmark.BitArray_PopCount(ItemCount: 1024) 1.14 μs 1.0 ns 1.14 μs +0.0%
BitSetBenchmark.BitSet_PopCount(ItemCount: 1024) 6.2 ns 0.2 ns 5.9 ns +3.7%
BitSetBenchmark.BitArray_PopCount(ItemCount: 1000000) 4.88 ms 8.21 μs 4.87 ms +0.0%
BitSetBenchmark.BitSet_PopCount(ItemCount: 1000000) 8.21 μs 6.3 ns 8.20 μs +0.1%
LruCacheBenchmark.Dictionary_Put(ItemCount: 1000) 83.64 μs 7.04 μs 82.79 μs +1.0%
LruCacheBenchmark.LruCache_Put(ItemCount: 1000) 451.84 μs 11.57 μs 455.21 μs -0.7%
LruCacheBenchmark.Dictionary_Put(ItemCount: 100000) 6.38 ms 61.55 μs 6.32 ms +1.0%
LruCacheBenchmark.LruCache_Put(ItemCount: 100000) 6.03 ms 45.98 μs 6.14 ms -1.8%
CelerityMultiMapBenchmark.Dictionary_Remove(ItemCount: 1000) 25.88 μs 1.66 μs 29.59 μs -12.5%
IntSetBenchmark.HashSet_Remove(ItemCount: 1000) 28.15 μs 4.99 μs 27.64 μs +1.9%
CelerityMultiMapBenchmark.CelerityMultiMap_Remove(ItemCount: 1000) 125.96 μs 11.73 μs 128.86 μs -2.2%
IntSetBenchmark.IntSet_Remove(ItemCount: 1000) 77.05 μs 8.31 μs 76.39 μs +0.9%
SwissSetBenchmark.HashSet_Remove(ItemCount: 1000) 27.06 μs 724.1 ns 26.71 μs +1.3%
SwissSetBenchmark.SwissSet_Remove(ItemCount: 1000) 56.13 μs 4.21 μs 54.31 μs +3.3%
CelerityMultiMapBenchmark.Dictionary_Remove(ItemCount: 100000) 1.93 ms 179.40 μs 2.02 ms -4.3%
IntSetBenchmark.HashSet_Remove(ItemCount: 100000) 1.64 ms 88.81 μs 1.56 ms +5.1%
CelerityMultiMapBenchmark.CelerityMultiMap_Remove(ItemCount: 100000) 2.00 ms 92.83 μs 2.13 ms -6.4%
IntSetBenchmark.IntSet_Remove(ItemCount: 100000) 1.39 ms 29.41 μs 1.34 ms +3.7%
SwissSetBenchmark.HashSet_Remove(ItemCount: 100000) 1.52 ms 15.51 μs 1.51 ms +0.9%
SwissSetBenchmark.SwissSet_Remove(ItemCount: 100000) 810.24 μs 13.77 μs 800.04 μs +1.3%
BitSetBenchmark.BitArray_Xor(ItemCount: 1024) 65.7 ns 0.8 ns 64.0 ns +2.6%
BitSetBenchmark.BitSet_Xor(ItemCount: 1024) 992.9 ns 0.7 ns 993.8 ns -0.1%
BitSetBenchmark.BitArray_Xor(ItemCount: 1000000) 54.36 μs 585.7 ns 54.35 μs +0.0%
BitSetBenchmark.BitSet_Xor(ItemCount: 1000000) 4.59 ms 3.23 μs 4.59 ms +0.0%
SmallSetBenchmark.HashSet_Add(ItemCount: 8) 145.1 ns 5.5 ns 149.1 ns -2.7%
SmallSetBenchmark.SmallSet_Add(ItemCount: 8) 42.9 ns 0.6 ns 42.3 ns +1.3%
SmallSetBenchmark.HashSet_Add(ItemCount: 64) 631.3 ns 32.4 ns 625.6 ns +0.9%
SmallSetBenchmark.SmallSet_Add(ItemCount: 64) 1.25 μs 7.2 ns 1.51 μs -17.1%
RobinHoodSetBenchmark.HashSet_Add(ItemCount: 1000) 10.54 μs 429.0 ns 10.10 μs +4.4%
RobinHoodSetBenchmark.RobinHoodSet_Add(ItemCount: 1000) 11.44 μs 213.2 ns 10.98 μs +4.2%
RobinHoodSetBenchmark.HashSet_Add(ItemCount: 100000) 4.18 ms 131.32 μs 4.21 ms -0.7%
RobinHoodSetBenchmark.RobinHoodSet_Add(ItemCount: 100000) 5.42 ms 69.76 μs 5.34 ms +1.5%
DisjointSetBenchmark.Dictionary_Components(ItemCount: 1000) 14.07 μs 400.6 ns 14.58 μs -3.5%
DisjointSetBenchmark.DisjointSet_Components(ItemCount: 1000) 12.89 μs 227.2 ns 13.01 μs -0.9%
DisjointSetBenchmark.Dictionary_Components(ItemCount: 100000) 3.73 ms 142.42 μs 3.86 ms -3.4%
DisjointSetBenchmark.DisjointSet_Components(ItemCount: 100000) 2.73 ms 129.86 μs 2.74 ms -0.3%
DisjointSetBenchmark.Dictionary_Connected(ItemCount: 1000) 7.39 μs 20.2 ns 7.41 μs -0.3%
DisjointSetBenchmark.DisjointSet_Connected(ItemCount: 1000) 10.08 μs 10.5 ns 10.09 μs -0.1%
DisjointSetBenchmark.Dictionary_Connected(ItemCount: 100000) 121.21 μs 469.2 ns 124.74 μs -2.8%
DisjointSetBenchmark.DisjointSet_Connected(ItemCount: 100000) 221.43 μs 591.3 ns 220.35 μs +0.5%
SmallSetBenchmark.HashSet_Contains(ItemCount: 8) 29.5 ns 0.5 ns 29.6 ns -0.5%
SmallSetBenchmark.SmallSet_Contains(ItemCount: 8) 15.5 ns 0.2 ns 15.4 ns +0.5%
SmallSetBenchmark.HashSet_Contains(ItemCount: 64) 234.3 ns 0.2 ns 234.2 ns +0.0%
SmallSetBenchmark.SmallSet_Contains(ItemCount: 64) 720.5 ns 12.3 ns 718.5 ns +0.3%
RobinHoodSetBenchmark.HashSet_Contains(ItemCount: 1000) 3.68 μs 17.9 ns 3.68 μs +0.0%
RobinHoodSetBenchmark.RobinHoodSet_Contains(ItemCount: 1000) 2.12 μs 5.4 ns 2.12 μs +0.1%
RobinHoodSetBenchmark.HashSet_Contains(ItemCount: 100000) 1.14 ms 37.63 μs 1.13 ms +0.5%
RobinHoodSetBenchmark.RobinHoodSet_Contains(ItemCount: 100000) 616.84 μs 7.38 μs 610.42 μs +1.1%
RobinHoodSetBenchmark.HashSet_ContainsMissing(ItemCount: 1000) 3.54 μs 1.8 ns 3.77 μs -6.2%
RobinHoodSetBenchmark.RobinHoodSet_ContainsMissing(ItemCount: 1000) 2.11 μs 1.8 ns 2.11 μs -0.1%
RobinHoodSetBenchmark.HashSet_ContainsMissing(ItemCount: 100000) 1.56 ms 6.34 μs 1.55 ms +0.7%
RobinHoodSetBenchmark.RobinHoodSet_ContainsMissing(ItemCount: 100000) 993.19 μs 1.94 μs 994.89 μs -0.2%
SmallDictionaryBenchmark.Dictionary_Insert(ItemCount: 8) 149.7 ns 3.5 ns 141.7 ns +5.7%
SmallDictionaryBenchmark.SmallDictionary_Insert(ItemCount: 8) 60.0 ns 0.8 ns 59.7 ns +0.6%
SmallDictionaryBenchmark.Dictionary_Insert(ItemCount: 64) 669.2 ns 27.4 ns 655.5 ns +2.1%
SmallDictionaryBenchmark.SmallDictionary_Insert(ItemCount: 64) 795.2 ns 5.4 ns 796.0 ns -0.1%
CelerityDictionaryBenchmark.Dictionary_Insert(ItemCount: 1000) 10.90 μs 402.9 ns 10.88 μs +0.1%
PooledCelerityDictionaryBenchmark.Dictionary_Insert(ItemCount: 1000) 11.34 μs 373.0 ns 11.66 μs -2.7%
CelerityDictionaryBenchmark.CelerityDictionary_Insert(ItemCount: 1000) 7.20 μs 168.7 ns 7.13 μs +1.0%
PooledCelerityDictionaryBenchmark.PooledCelerityDictionary_Insert(ItemCount: 1000) 6.52 μs 36.6 ns 6.41 μs +1.7%
CelerityDictionaryBenchmark.Dictionary_Insert(ItemCount: 100000) 3.57 ms 60.74 μs 3.60 ms -0.7%
PooledCelerityDictionaryBenchmark.Dictionary_Insert(ItemCount: 100000) 4.23 ms 212.10 μs 4.23 ms -0.1%
CelerityDictionaryBenchmark.CelerityDictionary_Insert(ItemCount: 100000) 4.26 ms 91.71 μs 4.18 ms +2.0%
PooledCelerityDictionaryBenchmark.PooledCelerityDictionary_Insert(ItemCount: 100000) 2.55 ms 7.78 μs 2.47 ms +3.3%
SmallDictionaryBenchmark.Dictionary_Lookup(ItemCount: 8) 29.7 ns 0.1 ns 28.7 ns +3.8%
SmallDictionaryBenchmark.SmallDictionary_Lookup(ItemCount: 8) 18.5 ns 0.4 ns 18.1 ns +2.4%
SmallDictionaryBenchmark.Dictionary_Lookup(ItemCount: 64) 229.0 ns 0.4 ns 241.4 ns -5.2%
SmallDictionaryBenchmark.SmallDictionary_Lookup(ItemCount: 64) 752.7 ns 5.2 ns 748.1 ns +0.6%
CelerityDictionaryBenchmark.Dictionary_Lookup(ItemCount: 1000) 3.57 μs 1.9 ns 3.66 μs -2.4%
PooledCelerityDictionaryBenchmark.Dictionary_Lookup(ItemCount: 1000) 3.61 μs 42.2 ns 3.66 μs -1.4%
CelerityDictionaryBenchmark.CelerityDictionary_Lookup(ItemCount: 1000) 1.69 μs 13.9 ns 1.67 μs +1.1%
PooledCelerityDictionaryBenchmark.PooledCelerityDictionary_Lookup(ItemCount: 1000) 1.93 μs 15.1 ns 1.93 μs -0.0%
CelerityDictionaryBenchmark.Dictionary_Lookup(ItemCount: 100000) 1.25 ms 1.29 μs 1.25 ms -0.3%
PooledCelerityDictionaryBenchmark.Dictionary_Lookup(ItemCount: 100000) 1.25 ms 4.00 μs 1.25 ms -0.6%
CelerityDictionaryBenchmark.CelerityDictionary_Lookup(ItemCount: 100000) 558.59 μs 18.57 μs 608.24 μs -8.2%
PooledCelerityDictionaryBenchmark.PooledCelerityDictionary_Lookup(ItemCount: 100000) 655.77 μs 24.03 μs 574.08 μs +14.2% ⚠️
SmallDictionaryBenchmark.Dictionary_Remove(ItemCount: 8) 927.4 ns 87.0 ns 980.8 ns -5.5%
SmallSetBenchmark.HashSet_Remove(ItemCount: 8) 282.5 ns 55.4 ns 352.4 ns -19.8%
SmallDictionaryBenchmark.SmallDictionary_Remove(ItemCount: 8) 999.3 ns 177.0 ns 1.02 μs -1.9%
SmallSetBenchmark.SmallSet_Remove(ItemCount: 8) 885.2 ns 155.9 ns 793.8 ns +11.5%
SmallDictionaryBenchmark.Dictionary_Remove(ItemCount: 64) 3.08 μs 106.1 ns 3.17 μs -2.7%
SmallSetBenchmark.HashSet_Remove(ItemCount: 64) 1.15 μs 223.2 ns 1.12 μs +2.5%
SmallDictionaryBenchmark.SmallDictionary_Remove(ItemCount: 64) 16.27 μs 564.9 ns 19.55 μs -16.8%
SmallSetBenchmark.SmallSet_Remove(ItemCount: 64) 18.19 μs 3.11 μs 16.12 μs +12.8%
CelerityDictionaryBenchmark.Dictionary_Remove(ItemCount: 1000) 63.23 μs 4.25 μs 61.29 μs +3.2%
PooledCelerityDictionaryBenchmark.Dictionary_Remove(ItemCount: 1000) 63.03 μs 4.93 μs 60.19 μs +4.7%
CelerityDictionaryBenchmark.CelerityDictionary_Remove(ItemCount: 1000) 117.39 μs 7.82 μs 118.50 μs -0.9%
PooledCelerityDictionaryBenchmark.PooledCelerityDictionary_Remove(ItemCount: 1000) 112.46 μs 5.99 μs 116.12 μs -3.1%
RobinHoodSetBenchmark.HashSet_Remove(ItemCount: 1000) 23.01 μs 3.14 μs 20.52 μs +12.1%
RobinHoodSetBenchmark.RobinHoodSet_Remove(ItemCount: 1000) 103.07 μs 4.69 μs 104.60 μs -1.5%
CelerityDictionaryBenchmark.Dictionary_Remove(ItemCount: 100000) 1.57 ms 25.66 μs 1.55 ms +0.9%
PooledCelerityDictionaryBenchmark.Dictionary_Remove(ItemCount: 100000) 1.60 ms 39.70 μs 1.56 ms +2.7%
CelerityDictionaryBenchmark.CelerityDictionary_Remove(ItemCount: 100000) 1.48 ms 231.55 μs 2.92 ms -49.5%
PooledCelerityDictionaryBenchmark.PooledCelerityDictionary_Remove(ItemCount: 100000) 3.10 ms 3.22 ms 8.88 ms -65.1% ✅
RobinHoodSetBenchmark.HashSet_Remove(ItemCount: 100000) 1.30 ms 13.63 μs 1.31 ms -0.7%
RobinHoodSetBenchmark.RobinHoodSet_Remove(ItemCount: 100000) 1.21 ms 76.56 μs 1.19 ms +2.2%
DisjointSetBenchmark.Dictionary_Union(ItemCount: 1000) 77.11 μs 2.36 μs 81.76 μs -5.7%
DisjointSetBenchmark.DisjointSet_Union(ItemCount: 1000) 21.96 μs 186.9 ns 22.27 μs -1.4%
DisjointSetBenchmark.Dictionary_Union(ItemCount: 100000) 44.82 ms 4.18 ms 45.71 ms -2.0%
DisjointSetBenchmark.DisjointSet_Union(ItemCount: 100000) 6.21 ms 91.99 μs 6.23 ms -0.2%
EnumSetBenchmark.HashSet_Add 583.4 ns 1.7 ns 577.1 ns +1.1%
EnumSetBenchmark.EnumSet_Add 86.7 ns 0.8 ns 87.1 ns -0.4%
BloomFilterBenchmark.HashSet_Add(ItemCount: 1000) 12.67 μs 82.2 ns 12.66 μs +0.0%
CeleritySetBenchmark.HashSet_Add(ItemCount: 1000) 12.63 μs 88.9 ns 12.67 μs -0.3%
HashCachingSetBenchmark.HashSet_Add(ItemCount: 1000) 12.70 μs 82.7 ns 12.68 μs +0.2%
BloomFilterBenchmark.BloomFilter_Add(ItemCount: 1000) 16.37 μs 9.2 ns 16.38 μs -0.1%
CeleritySetBenchmark.CeleritySet_Add(ItemCount: 1000) 9.25 μs 187.3 ns 9.15 μs +1.0%
HashCachingSetBenchmark.HashCachingSet_Add(ItemCount: 1000) 11.10 μs 54.7 ns 11.28 μs -1.6%
BloomFilterBenchmark.HashSet_Add(ItemCount: 100000) 4.75 ms 101.97 μs 4.72 ms +0.6%
CeleritySetBenchmark.HashSet_Add(ItemCount: 100000) 5.20 ms 84.38 μs 5.27 ms -1.5%
HashCachingSetBenchmark.HashSet_Add(ItemCount: 100000) 5.13 ms 72.67 μs 5.10 ms +0.7%
BloomFilterBenchmark.BloomFilter_Add(ItemCount: 100000) 1.26 ms 1.92 μs 1.26 ms +0.0%
CeleritySetBenchmark.CeleritySet_Add(ItemCount: 100000) 3.47 ms 9.07 μs 3.47 ms -0.1%
HashCachingSetBenchmark.HashCachingSet_Add(ItemCount: 100000) 5.60 ms 92.74 μs 5.63 ms -0.6%
FrozenCelerityDictionaryBenchmark.FrozenDictionary_Build(ItemCount: 1000) 166.55 μs 837.3 ns 166.28 μs +0.2%
FrozenCelerityDictionaryBenchmark.FrozenCelerityDictionary_Build(ItemCount: 1000) 3.42 ms 55.01 μs 3.36 ms +1.6%
FrozenCelerityDictionaryBenchmark.FrozenDictionary_Build(ItemCount: 100000) 29.25 ms 356.19 μs 29.48 ms -0.8%
FrozenCelerityDictionaryBenchmark.FrozenCelerityDictionary_Build(ItemCount: 100000) 1.68 s 188.13 ms 1.85 s -9.3%
EnumSetBenchmark.HashSet_Contains 170.9 ns 0.7 ns 170.5 ns +0.2%
EnumSetBenchmark.EnumSet_Contains 51.4 ns 0.2 ns 51.6 ns -0.4%
BloomFilterBenchmark.HashSet_Contains(ItemCount: 1000) 5.01 μs 267.3 ns 4.74 μs +5.9%
CeleritySetBenchmark.HashSet_Contains(ItemCount: 1000) 4.71 μs 2.9 ns 4.71 μs -0.1%
HashCachingSetBenchmark.HashSet_Contains(ItemCount: 1000) 4.74 μs 5.1 ns 4.74 μs +0.0%
BloomFilterBenchmark.BloomFilter_Contains(ItemCount: 1000) 14.18 μs 3.8 ns 14.18 μs -0.0%
CeleritySetBenchmark.CeleritySet_Contains(ItemCount: 1000) 1.91 μs 14.6 ns 1.92 μs -0.3%
HashCachingSetBenchmark.HashCachingSet_Contains(ItemCount: 1000) 2.63 μs 11.3 ns 2.64 μs -0.1%
BloomFilterBenchmark.HashSet_Contains(ItemCount: 100000) 1.53 ms 2.00 μs 1.51 ms +0.8%
CeleritySetBenchmark.HashSet_Contains(ItemCount: 100000) 1.51 ms 4.67 μs 1.46 ms +3.3%
HashCachingSetBenchmark.HashSet_Contains(ItemCount: 100000) 1.55 ms 33.99 μs 1.52 ms +1.6%
BloomFilterBenchmark.BloomFilter_Contains(ItemCount: 100000) 982.12 μs 895.0 ns 982.15 μs -0.0%
CeleritySetBenchmark.CeleritySet_Contains(ItemCount: 100000) 548.77 μs 2.77 μs 555.08 μs -1.1%
HashCachingSetBenchmark.HashCachingSet_Contains(ItemCount: 100000) 737.86 μs 7.42 μs 747.27 μs -1.3%
BloomFilterBenchmark.HashSet_ContainsMissing(ItemCount: 1000) 4.66 μs 100.8 ns 4.57 μs +2.1%
HashCachingSetBenchmark.HashSet_ContainsMissing(ItemCount: 1000) 4.57 μs 4.9 ns 4.57 μs -0.2%
BloomFilterBenchmark.BloomFilter_ContainsMissing(ItemCount: 1000) 3.98 μs 3.8 ns 3.98 μs +0.0%
HashCachingSetBenchmark.HashCachingSet_ContainsMissing(ItemCount: 1000) 3.18 μs 226.1 ns 2.79 μs +14.0% ⚠️
BloomFilterBenchmark.HashSet_ContainsMissing(ItemCount: 100000) 1.99 ms 10.48 μs 1.99 ms -0.3%
HashCachingSetBenchmark.HashSet_ContainsMissing(ItemCount: 100000) 2.00 ms 5.65 μs 2.00 ms +0.0%
BloomFilterBenchmark.BloomFilter_ContainsMissing(ItemCount: 100000) 1.67 ms 1.35 μs 1.67 ms -0.0%
HashCachingSetBenchmark.HashCachingSet_ContainsMissing(ItemCount: 100000) 1.26 ms 3.17 μs 1.26 ms +0.1%
IntDictionaryBenchmark.Dictionary_Insert(ItemCount: 1000) 13.48 μs 155.1 ns 13.18 μs +2.3%
RobinHoodDictionaryBenchmark.Dictionary_Insert(ItemCount: 1000) 13.35 μs 66.3 ns 13.39 μs -0.3%
IntDictionaryBenchmark.IntDictionary_Insert(ItemCount: 1000) 8.88 μs 231.0 ns 8.84 μs +0.4%
RobinHoodDictionaryBenchmark.RobinHoodDictionary_Insert(ItemCount: 1000) 16.74 μs 75.1 ns 16.77 μs -0.2%
IntDictionaryBenchmark.Dictionary_Insert(ItemCount: 100000) 4.36 ms 83.73 μs 4.33 ms +0.7%
RobinHoodDictionaryBenchmark.Dictionary_Insert(ItemCount: 100000) 5.02 ms 47.03 μs 5.01 ms +0.2%
IntDictionaryBenchmark.IntDictionary_Insert(ItemCount: 100000) 5.08 ms 41.72 μs 5.12 ms -0.8%
RobinHoodDictionaryBenchmark.RobinHoodDictionary_Insert(ItemCount: 100000) 8.37 ms 1.06 ms 8.17 ms +2.4%
FrozenCelerityDictionaryBenchmark.FrozenDictionary_Lookup(ItemCount: 1000) 7.60 μs 5.2 ns 7.61 μs -0.2%
IntDictionaryBenchmark.Dictionary_Lookup(ItemCount: 1000) 4.86 μs 271.9 ns 4.60 μs +5.6%
RobinHoodDictionaryBenchmark.Dictionary_Lookup(ItemCount: 1000) 4.72 μs 119.4 ns 4.83 μs -2.4%
FrozenCelerityDictionaryBenchmark.FrozenCelerityDictionary_Lookup(ItemCount: 1000) 80.76 μs 91.2 ns 80.81 μs -0.1%
IntDictionaryBenchmark.IntDictionary_Lookup(ItemCount: 1000) 2.08 μs 7.3 ns 3.12 μs -33.3%
RobinHoodDictionaryBenchmark.RobinHoodDictionary_Lookup(ItemCount: 1000) 8.21 μs 5.42 μs 2.89 μs +184.1%
FrozenCelerityDictionaryBenchmark.FrozenDictionary_Lookup(ItemCount: 100000) 1.87 ms 8.34 μs 1.86 ms +0.4%
IntDictionaryBenchmark.Dictionary_Lookup(ItemCount: 100000) 1.58 ms 27.97 μs 1.57 ms +0.5%
RobinHoodDictionaryBenchmark.Dictionary_Lookup(ItemCount: 100000) 1.61 ms 1.82 μs 1.64 ms -2.4%
FrozenCelerityDictionaryBenchmark.FrozenCelerityDictionary_Lookup(ItemCount: 100000) 8.22 ms 81.69 μs 8.41 ms -2.3%
IntDictionaryBenchmark.IntDictionary_Lookup(ItemCount: 100000) 590.00 μs 11.89 μs 703.50 μs -16.1% ✅
RobinHoodDictionaryBenchmark.RobinHoodDictionary_Lookup(ItemCount: 100000) 869.50 μs 43.34 μs 945.22 μs -8.0%
EnumSetBenchmark.HashSet_Remove 2.50 μs 257.8 ns 2.65 μs -5.7%
EnumSetBenchmark.EnumSet_Remove 962.0 ns 97.3 ns 1.08 μs -10.7%
CeleritySetBenchmark.HashSet_Remove(ItemCount: 1000) 29.23 μs 3.04 μs 27.76 μs +5.3%
IntDictionaryBenchmark.Dictionary_Remove(ItemCount: 1000) 77.49 μs 7.06 μs 79.00 μs -1.9%
RobinHoodDictionaryBenchmark.Dictionary_Remove(ItemCount: 1000) 76.64 μs 6.98 μs 78.67 μs -2.6%
CeleritySetBenchmark.CeleritySet_Remove(ItemCount: 1000) 142.11 μs 5.84 μs 144.44 μs -1.6%
IntDictionaryBenchmark.IntDictionary_Remove(ItemCount: 1000) 87.34 μs 7.74 μs 87.03 μs +0.4%
RobinHoodDictionaryBenchmark.RobinHoodDictionary_Remove(ItemCount: 1000) 136.21 μs 6.24 μs 134.20 μs +1.5%
HashCachingSetBenchmark.HashSet_Remove(ItemCount: 1000) 30.77 μs 3.27 μs 30.68 μs +0.3%
HashCachingSetBenchmark.HashCachingSet_Remove(ItemCount: 1000) 109.49 μs 7.84 μs 107.47 μs +1.9%
CeleritySetBenchmark.HashSet_Remove(ItemCount: 100000) 1.67 ms 11.90 μs 1.67 ms +0.1%
IntDictionaryBenchmark.Dictionary_Remove(ItemCount: 100000) 2.00 ms 21.88 μs 1.99 ms +0.6%
RobinHoodDictionaryBenchmark.Dictionary_Remove(ItemCount: 100000) 1.99 ms 13.42 μs 2.00 ms -0.6%
CeleritySetBenchmark.CeleritySet_Remove(ItemCount: 100000) 1.42 ms 60.48 μs 1.42 ms +0.2%
IntDictionaryBenchmark.IntDictionary_Remove(ItemCount: 100000) 1.69 ms 59.64 μs 2.74 ms -38.4%
RobinHoodDictionaryBenchmark.RobinHoodDictionary_Remove(ItemCount: 100000) 1.83 ms 39.34 μs 1.85 ms -1.3%
HashCachingSetBenchmark.HashSet_Remove(ItemCount: 100000) 1.71 ms 21.36 μs 1.72 ms -0.9%
HashCachingSetBenchmark.HashCachingSet_Remove(ItemCount: 100000) 1.69 ms 20.91 μs 1.69 ms +0.2%
EnumSetBenchmark.HashSet_Union 410.5 ns 2.7 ns 409.4 ns +0.3%
EnumSetBenchmark.EnumSet_Union 23.8 ns 0.7 ns 23.2 ns +2.5%
EnumMapBenchmark.Dictionary_Add 623.1 ns 10.9 ns 615.3 ns +1.3%
EnumMapBenchmark.EnumMap_Add 153.6 ns 0.9 ns 154.5 ns -0.6%
CuckooFilterBenchmark.HashSet_Add(ItemCount: 1000) 12.51 μs 248.7 ns 12.39 μs +0.9%
HyperLogLogBenchmark.HashSet_Add(ItemCount: 1000) 14.07 μs 1.69 μs 12.43 μs +13.2%
PooledCeleritySetBenchmark.HashSet_Add(ItemCount: 1000) 12.85 μs 132.2 ns 12.72 μs +1.0%
CuckooFilterBenchmark.CuckooFilter_Add(ItemCount: 1000) 7.27 μs 57.5 ns 7.24 μs +0.3%
HyperLogLogBenchmark.HyperLogLog_Add(ItemCount: 1000) 27.41 μs 26.6 ns 27.36 μs +0.2%
PooledCeleritySetBenchmark.PooledCeleritySet_Add(ItemCount: 1000) 8.98 μs 106.8 ns 9.02 μs -0.4%
CuckooFilterBenchmark.HashSet_Add(ItemCount: 100000) 4.70 ms 66.78 μs 4.65 ms +1.0%
HyperLogLogBenchmark.HashSet_Add(ItemCount: 100000) 4.81 ms 62.17 μs 4.81 ms -0.0%
PooledCeleritySetBenchmark.HashSet_Add(ItemCount: 100000) 4.78 ms 138.99 μs 4.84 ms -1.2%
CuckooFilterBenchmark.CuckooFilter_Add(ItemCount: 100000) 2.08 ms 10.87 μs 2.10 ms -1.0%
HyperLogLogBenchmark.HyperLogLog_Add(ItemCount: 100000) 574.90 μs 332.8 ns 577.31 μs -0.4%
PooledCeleritySetBenchmark.PooledCeleritySet_Add(ItemCount: 100000) 2.87 ms 3.72 μs 2.85 ms +0.5%
XorFilterBenchmark.HashSet_Build(ItemCount: 1000) 8.09 μs 37.7 ns 8.19 μs -1.3%
XorFilterBenchmark.XorFilter_Build(ItemCount: 1000) 40.03 μs 310.0 ns 40.78 μs -1.8%
XorFilterBenchmark.HashSet_Build(ItemCount: 100000) 2.09 ms 49.90 μs 2.09 ms +0.2%
XorFilterBenchmark.XorFilter_Build(ItemCount: 100000) 12.59 ms 305.62 μs 12.73 ms -1.1%
CuckooFilterBenchmark.HashSet_Contains(ItemCount: 1000) 4.76 μs 38.0 ns 4.74 μs +0.4%
PooledCeleritySetBenchmark.HashSet_Contains(ItemCount: 1000) 4.79 μs 53.5 ns 4.75 μs +0.8%
XorFilterBenchmark.HashSet_Contains(ItemCount: 1000) 4.71 μs 37.3 ns 4.71 μs +0.2%
CuckooFilterBenchmark.CuckooFilter_Contains(ItemCount: 1000) 4.92 μs 7.4 ns 4.91 μs +0.1%
PooledCeleritySetBenchmark.PooledCeleritySet_Contains(ItemCount: 1000) 1.91 μs 25.5 ns 1.93 μs -0.8%
XorFilterBenchmark.XorFilter_Contains(ItemCount: 1000) 6.77 μs 5.6 ns 6.77 μs -0.1%
CuckooFilterBenchmark.HashSet_Contains(ItemCount: 100000) 1.59 ms 6.42 μs 1.56 ms +2.0%
PooledCeleritySetBenchmark.HashSet_Contains(ItemCount: 100000) 1.55 ms 8.35 μs 1.55 ms -0.2%
XorFilterBenchmark.HashSet_Contains(ItemCount: 100000) 1.56 ms 7.17 μs 1.56 ms -0.1%
CuckooFilterBenchmark.CuckooFilter_Contains(ItemCount: 100000) 1.74 ms 1.43 μs 1.75 ms -0.2%
PooledCeleritySetBenchmark.PooledCeleritySet_Contains(ItemCount: 100000) 571.68 μs 1.84 μs 572.87 μs -0.2%
XorFilterBenchmark.XorFilter_Contains(ItemCount: 100000) 703.86 μs 537.5 ns 704.23 μs -0.1%
CuckooFilterBenchmark.HashSet_ContainsMissing(ItemCount: 1000) 4.54 μs 3.7 ns 4.54 μs +0.0%
XorFilterBenchmark.HashSet_ContainsMissing(ItemCount: 1000) 4.54 μs 4.6 ns 4.54 μs +0.0%
CuckooFilterBenchmark.CuckooFilter_ContainsMissing(ItemCount: 1000) 8.36 μs 6.4 ns 8.37 μs -0.0%
XorFilterBenchmark.XorFilter_ContainsMissing(ItemCount: 1000) 6.77 μs 3.1 ns 6.78 μs -0.1%
CuckooFilterBenchmark.HashSet_ContainsMissing(ItemCount: 100000) 1.93 ms 9.81 μs 1.94 ms -0.2%
XorFilterBenchmark.HashSet_ContainsMissing(ItemCount: 100000) 1.92 ms 17.62 μs 1.92 ms -0.3%
CuckooFilterBenchmark.CuckooFilter_ContainsMissing(ItemCount: 100000) 926.26 μs 775.3 ns 925.37 μs +0.1%
XorFilterBenchmark.XorFilter_ContainsMissing(ItemCount: 100000) 705.01 μs 293.0 ns 704.73 μs +0.0%
EnumMapBenchmark.Dictionary_Enumerate 50.4 ns 0.1 ns 50.4 ns +0.1%
EnumMapBenchmark.EnumMap_Enumerate 39.7 ns 0.0 ns 41.6 ns -4.5%
HyperLogLogBenchmark.HashSet_Estimate(ItemCount: 1000) 0.0 ns 0.0 ns 0.0 ns +211.3%
HyperLogLogBenchmark.HyperLogLog_Estimate(ItemCount: 1000) 23.44 μs 13.0 ns 23.44 μs -0.0%
HyperLogLogBenchmark.HashSet_Estimate(ItemCount: 100000) 0.0 ns 0.0 ns 0.0 ns +8.0%
HyperLogLogBenchmark.HyperLogLog_Estimate(ItemCount: 100000) 22.97 μs 5.7 ns 22.98 μs -0.0%
LongDictionaryBenchmark.Dictionary_Insert(ItemCount: 1000) 15.23 μs 159.5 ns 15.41 μs -1.1%
SwissDictionaryBenchmark.Dictionary_Insert(ItemCount: 1000) 13.38 μs 139.9 ns 13.52 μs -1.0%
LongDictionaryBenchmark.LongDictionary_Insert(ItemCount: 1000) 11.61 μs 121.6 ns 11.71 μs -0.8%
SwissDictionaryBenchmark.SwissDictionary_Insert(ItemCount: 1000) 30.29 μs 227.6 ns 29.73 μs +1.9%
LongDictionaryBenchmark.Dictionary_Insert(ItemCount: 100000) 5.02 ms 55.40 μs 4.98 ms +0.7%
SwissDictionaryBenchmark.Dictionary_Insert(ItemCount: 100000) 4.48 ms 176.81 μs 4.49 ms -0.2%
LongDictionaryBenchmark.LongDictionary_Insert(ItemCount: 100000) 6.73 ms 128.69 μs 6.84 ms -1.6%
SwissDictionaryBenchmark.SwissDictionary_Insert(ItemCount: 100000) 3.93 ms 33.78 μs 3.97 ms -0.8%
EnumMapBenchmark.Dictionary_Lookup 117.8 ns 0.1 ns 118.3 ns -0.4%
EnumMapBenchmark.EnumMap_Lookup 63.9 ns 0.2 ns 64.2 ns -0.4%
LongDictionaryBenchmark.Dictionary_Lookup(ItemCount: 1000) 4.96 μs 63.8 ns 5.07 μs -2.3%
SwissDictionaryBenchmark.Dictionary_Lookup(ItemCount: 1000) 4.72 μs 20.5 ns 4.82 μs -2.2%
LongDictionaryBenchmark.LongDictionary_Lookup(ItemCount: 1000) 2.27 μs 6.9 ns 2.27 μs +0.3%
SwissDictionaryBenchmark.SwissDictionary_Lookup(ItemCount: 1000) 2.97 μs 5.1 ns 3.00 μs -1.0%
LongDictionaryBenchmark.Dictionary_Lookup(ItemCount: 100000) 1.58 ms 28.17 μs 1.58 ms +0.2%
SwissDictionaryBenchmark.Dictionary_Lookup(ItemCount: 100000) 1.62 ms 21.27 μs 1.62 ms -0.0%
LongDictionaryBenchmark.LongDictionary_Lookup(ItemCount: 100000) 697.00 μs 2.75 μs 699.29 μs -0.3%
SwissDictionaryBenchmark.SwissDictionary_Lookup(ItemCount: 100000) 789.40 μs 15.00 μs 799.13 μs -1.2%
EnumMapBenchmark.Dictionary_Remove 3.62 μs 447.0 ns 3.16 μs +14.3%
EnumMapBenchmark.EnumMap_Remove 1.98 μs 400.9 ns 1.96 μs +1.1%
LongDictionaryBenchmark.Dictionary_Remove(ItemCount: 1000) 86.31 μs 8.66 μs 87.00 μs -0.8%
PooledCeleritySetBenchmark.HashSet_Remove(ItemCount: 1000) 31.88 μs 4.03 μs 29.48 μs +8.1%
SwissDictionaryBenchmark.Dictionary_Remove(ItemCount: 1000) 83.89 μs 5.48 μs 87.79 μs -4.4%
LongDictionaryBenchmark.LongDictionary_Remove(ItemCount: 1000) 91.81 μs 6.81 μs 95.41 μs -3.8%
PooledCeleritySetBenchmark.PooledCeleritySet_Remove(ItemCount: 1000) 136.58 μs 5.33 μs 142.19 μs -4.0%
SwissDictionaryBenchmark.SwissDictionary_Remove(ItemCount: 1000) 83.23 μs 3.61 μs 75.64 μs +10.0%
CuckooFilterBenchmark.HashSet_Remove(ItemCount: 1000) 13.29 μs 87.6 ns 13.27 μs +0.2%
CuckooFilterBenchmark.CuckooFilter_Remove(ItemCount: 1000) 12.87 μs 41.4 ns 12.91 μs -0.3%
LongDictionaryBenchmark.Dictionary_Remove(ItemCount: 100000) 2.01 ms 31.01 μs 2.00 ms +0.4%
PooledCeleritySetBenchmark.HashSet_Remove(ItemCount: 100000) 1.71 ms 12.24 μs 1.72 ms -0.8%
SwissDictionaryBenchmark.Dictionary_Remove(ItemCount: 100000) 2.05 ms 13.19 μs 2.07 ms -0.9%
LongDictionaryBenchmark.LongDictionary_Remove(ItemCount: 100000) 1.66 ms 105.60 μs 1.70 ms -2.4%
PooledCeleritySetBenchmark.PooledCeleritySet_Remove(ItemCount: 100000) 1.27 ms 52.28 μs 1.26 ms +0.2%
SwissDictionaryBenchmark.SwissDictionary_Remove(ItemCount: 100000) 1.69 ms 96.48 μs 1.75 ms -3.3%
CuckooFilterBenchmark.HashSet_Remove(ItemCount: 100000) 3.82 ms 61.37 μs 3.85 ms -1.0%
CuckooFilterBenchmark.CuckooFilter_Remove(ItemCount: 100000) 3.99 ms 12.06 μs 3.97 ms +0.5%
Hashers (100)
Benchmark This PR StdDev main Δ
StringHasherBenchmark.Bcl_GetHashCode(Shape: ShortAscii) 15.39 μs 20.2 ns 15.40 μs -0.1%
StringHasherBenchmark.EqualityComparer_Default(Shape: ShortAscii) 15.39 μs 16.3 ns 15.39 μs -0.0%
StringHasherBenchmark.Djb2(Shape: ShortAscii) 22.03 μs 22.4 ns 22.05 μs -0.1%
StringHasherBenchmark.Djb2A(Shape: ShortAscii) 22.03 μs 15.1 ns 22.02 μs +0.0%
StringHasherBenchmark.Sdbm(Shape: ShortAscii) 32.86 μs 28.0 ns 32.84 μs +0.1%
StringHasherBenchmark.Elf(Shape: ShortAscii) 43.94 μs 168.6 ns 43.94 μs +0.0%
StringHasherBenchmark.Crc32(Shape: ShortAscii) 49.87 μs 48.5 ns 49.88 μs -0.0%
StringHasherBenchmark.Adler32(Shape: ShortAscii) 96.21 μs 83.2 ns 96.22 μs -0.0%
StringHasherBenchmark.FnV1(Shape: ShortAscii) 25.34 μs 17.4 ns 25.35 μs -0.1%
StringHasherBenchmark.FnV1_64(Shape: ShortAscii) 25.45 μs 23.8 ns 25.46 μs -0.0%
StringHasherBenchmark.FnV1A(Shape: ShortAscii) 10.64 μs 31.9 ns 10.66 μs -0.2%
StringHasherBenchmark.FnV1A_Full(Shape: ShortAscii) 22.84 μs 16.4 ns 22.86 μs -0.1%
StringHasherBenchmark.FnV1A_64(Shape: ShortAscii) 25.74 μs 33.8 ns 25.70 μs +0.1%
StringHasherBenchmark.JenkinsOaat(Shape: ShortAscii) 39.27 μs 30.2 ns 39.27 μs +0.0%
StringHasherBenchmark.Murmur2(Shape: ShortAscii) 15.19 μs 37.1 ns 15.18 μs +0.0%
StringHasherBenchmark.Murmur3(Shape: ShortAscii) 17.29 μs 16.9 ns 17.34 μs -0.3%
StringHasherBenchmark.XxHash32(Shape: ShortAscii) 16.91 μs 8.9 ns 16.91 μs -0.0%
StringHasherBenchmark.XxHash64(Shape: ShortAscii) 18.07 μs 36.9 ns 18.10 μs -0.2%
StringHasherBenchmark.XxHash3(Shape: ShortAscii) 14.83 μs 12.7 ns 14.84 μs -0.1%
StringHasherBenchmark.CityHash64(Shape: ShortAscii) 15.24 μs 7.8 ns 15.24 μs -0.0%
StringHasherBenchmark.MetroHash64(Shape: ShortAscii) 15.01 μs 12.0 ns 15.00 μs +0.1%
StringHasherBenchmark.SipHash13(Shape: ShortAscii) 27.36 μs 21.6 ns 27.37 μs -0.1%
StringHasherBenchmark.SipHash24(Shape: ShortAscii) 38.48 μs 26.8 ns 38.46 μs +0.0%
StringHasherBenchmark.HalfSipHash24(Shape: ShortAscii) 49.98 μs 47.6 ns 50.01 μs -0.0%
StringHasherBenchmark.HighwayHash64(Shape: ShortAscii) 481.04 μs 945.5 ns 478.00 μs +0.6%
StringHasherBenchmark.Bcl_GetHashCode(Shape: LongAscii) 96.97 μs 60.7 ns 96.95 μs +0.0%
StringHasherBenchmark.EqualityComparer_Default(Shape: LongAscii) 96.64 μs 83.6 ns 96.65 μs -0.0%
StringHasherBenchmark.Djb2(Shape: LongAscii) 229.48 μs 74.1 ns 229.39 μs +0.0%
StringHasherBenchmark.Djb2A(Shape: LongAscii) 229.42 μs 72.9 ns 229.46 μs -0.0%
StringHasherBenchmark.Sdbm(Shape: LongAscii) 308.11 μs 96.9 ns 308.01 μs +0.0%
StringHasherBenchmark.Elf(Shape: LongAscii) 582.23 μs 4.97 μs 577.57 μs +0.8%
StringHasherBenchmark.Crc32(Shape: LongAscii) 589.54 μs 220.4 ns 590.12 μs -0.1%
StringHasherBenchmark.Adler32(Shape: LongAscii) 789.32 μs 323.4 ns 789.17 μs +0.0%
StringHasherBenchmark.FnV1(Shape: LongAscii) 289.66 μs 141.1 ns 289.77 μs -0.0%
StringHasherBenchmark.FnV1_64(Shape: LongAscii) 284.55 μs 171.1 ns 284.52 μs +0.0%
StringHasherBenchmark.FnV1A(Shape: LongAscii) 122.32 μs 72.4 ns 122.23 μs +0.1%
StringHasherBenchmark.FnV1A_Full(Shape: LongAscii) 281.76 μs 140.7 ns 281.63 μs +0.0%
StringHasherBenchmark.FnV1A_64(Shape: LongAscii) 286.97 μs 146.4 ns 286.93 μs +0.0%
StringHasherBenchmark.JenkinsOaat(Shape: LongAscii) 378.61 μs 156.6 ns 378.58 μs +0.0%
StringHasherBenchmark.Murmur2(Shape: LongAscii) 101.93 μs 109.9 ns 101.95 μs -0.0%
StringHasherBenchmark.Murmur3(Shape: LongAscii) 113.06 μs 132.4 ns 112.99 μs +0.1%
StringHasherBenchmark.XxHash32(Shape: LongAscii) 73.25 μs 94.2 ns 73.23 μs +0.0%
StringHasherBenchmark.XxHash64(Shape: LongAscii) 90.26 μs 680.7 ns 91.15 μs -1.0%
StringHasherBenchmark.XxHash3(Shape: LongAscii) 69.95 μs 56.9 ns 70.49 μs -0.8%
StringHasherBenchmark.CityHash64(Shape: LongAscii) 122.26 μs 1.00 μs 122.44 μs -0.1%
StringHasherBenchmark.MetroHash64(Shape: LongAscii) 77.07 μs 2.50 μs 77.58 μs -0.7%
StringHasherBenchmark.SipHash13(Shape: LongAscii) 114.63 μs 75.0 ns 114.58 μs +0.1%
StringHasherBenchmark.SipHash24(Shape: LongAscii) 161.20 μs 531.8 ns 160.89 μs +0.2%
StringHasherBenchmark.HalfSipHash24(Shape: LongAscii) 247.78 μs 229.0 ns 247.54 μs +0.1%
StringHasherBenchmark.HighwayHash64(Shape: LongAscii) 838.80 μs 12.17 μs 836.28 μs +0.3%
StringHasherBenchmark.Bcl_GetHashCode(Shape: NonAscii) 22.88 μs 15.6 ns 22.87 μs +0.0%
StringHasherBenchmark.EqualityComparer_Default(Shape: NonAscii) 22.83 μs 14.1 ns 22.83 μs +0.0%
StringHasherBenchmark.Djb2(Shape: NonAscii) 43.41 μs 31.1 ns 43.44 μs -0.1%
StringHasherBenchmark.Djb2A(Shape: NonAscii) 43.42 μs 36.8 ns 43.42 μs +0.0%
StringHasherBenchmark.Sdbm(Shape: NonAscii) 61.61 μs 35.3 ns 61.56 μs +0.1%
StringHasherBenchmark.Elf(Shape: NonAscii) 99.75 μs 200.4 ns 99.62 μs +0.1%
StringHasherBenchmark.Crc32(Shape: NonAscii) 102.62 μs 81.6 ns 102.64 μs -0.0%
StringHasherBenchmark.Adler32(Shape: NonAscii) 175.34 μs 92.5 ns 175.34 μs +0.0%
StringHasherBenchmark.FnV1(Shape: NonAscii) 47.64 μs 38.7 ns 47.61 μs +0.1%
StringHasherBenchmark.FnV1_64(Shape: NonAscii) 50.02 μs 47.4 ns 50.01 μs +0.0%
StringHasherBenchmark.FnV1A(Shape: NonAscii) 21.64 μs 30.5 ns 21.65 μs -0.0%
StringHasherBenchmark.FnV1A_Full(Shape: NonAscii) 45.05 μs 31.7 ns 45.07 μs -0.0%
StringHasherBenchmark.FnV1A_64(Shape: NonAscii) 49.60 μs 46.2 ns 49.61 μs -0.0%
StringHasherBenchmark.JenkinsOaat(Shape: NonAscii) 73.10 μs 50.4 ns 73.15 μs -0.1%
StringHasherBenchmark.Murmur2(Shape: NonAscii) 27.24 μs 199.9 ns 27.24 μs -0.0%
StringHasherBenchmark.Murmur3(Shape: NonAscii) 31.85 μs 69.5 ns 31.92 μs -0.2%
StringHasherBenchmark.XxHash32(Shape: NonAscii) 23.91 μs 17.0 ns 23.89 μs +0.1%
StringHasherBenchmark.XxHash64(Shape: NonAscii) 29.12 μs 20.2 ns 29.15 μs -0.1%
StringHasherBenchmark.XxHash3(Shape: NonAscii) 22.91 μs 53.6 ns 23.01 μs -0.4%
StringHasherBenchmark.CityHash64(Shape: NonAscii) 22.02 μs 13.5 ns 22.02 μs +0.0%
StringHasherBenchmark.MetroHash64(Shape: NonAscii) 25.63 μs 19.2 ns 25.64 μs -0.0%
StringHasherBenchmark.SipHash13(Shape: NonAscii) 36.93 μs 100.3 ns 37.01 μs -0.2%
StringHasherBenchmark.SipHash24(Shape: NonAscii) 51.28 μs 584.6 ns 51.53 μs -0.5%
StringHasherBenchmark.HalfSipHash24(Shape: NonAscii) 73.21 μs 679.0 ns 72.72 μs +0.7%
StringHasherBenchmark.HighwayHash64(Shape: NonAscii) 514.08 μs 3.00 μs 512.37 μs +0.3%
IntegerHasherBenchmark.Guid_Bcl 1.27 μs 2.8 ns 1.30 μs -2.1%
IntegerHasherBenchmark.Guid_EqualityComparer 3.50 μs 1.0 ns 3.47 μs +0.9%
IntegerHasherBenchmark.Guid_Celerity 8.03 μs 10.8 ns 8.04 μs -0.2%
IntegerHasherBenchmark.Int32_Bcl 687.9 ns 2.0 ns 695.8 ns -1.1%
IntegerHasherBenchmark.Int32_EqualityComparer 703.6 ns 3.0 ns 712.5 ns -1.2%
IntegerHasherBenchmark.Int32_Identity 690.7 ns 5.0 ns 705.4 ns -2.1%
IntegerHasherBenchmark.Int32_WangNaive 1.25 μs 0.7 ns 1.25 μs -0.0%
IntegerHasherBenchmark.Int32_Wang 3.02 μs 5.0 ns 3.03 μs -0.1%
IntegerHasherBenchmark.Int32_Murmur3 2.65 μs 2.4 ns 2.65 μs +0.1%
IntegerHasherBenchmark.Int64_Bcl 1.27 μs 0.8 ns 1.38 μs -7.7%
IntegerHasherBenchmark.Int64_EqualityComparer 1.25 μs 0.6 ns 1.25 μs -0.1%
IntegerHasherBenchmark.Int64_Identity 691.2 ns 3.9 ns 687.4 ns +0.6%
IntegerHasherBenchmark.Int64_WangNaive 1.87 μs 1.6 ns 1.87 μs -0.1%
IntegerHasherBenchmark.Int64_Wang 4.16 μs 3.8 ns 4.16 μs -0.0%
IntegerHasherBenchmark.Int64_Murmur3 2.37 μs 2.1 ns 2.37 μs -0.1%
IntegerHasherBenchmark.UInt32_Bcl 692.4 ns 5.6 ns 703.3 ns -1.6%
IntegerHasherBenchmark.UInt32_EqualityComparer 706.9 ns 4.8 ns 707.8 ns -0.1%
IntegerHasherBenchmark.UInt32_Default 1.25 μs 1.5 ns 1.25 μs +0.0%
IntegerHasherBenchmark.UInt32_Wang 3.03 μs 5.3 ns 3.03 μs -0.1%
IntegerHasherBenchmark.UInt32_Murmur3 2.65 μs 1.4 ns 2.65 μs -0.1%
IntegerHasherBenchmark.UInt64_Bcl 1.27 μs 1.0 ns 1.27 μs -0.1%
IntegerHasherBenchmark.UInt64_EqualityComparer 1.25 μs 0.8 ns 1.25 μs +0.0%
IntegerHasherBenchmark.UInt64_Default 2.37 μs 1.0 ns 2.37 μs -0.0%
IntegerHasherBenchmark.UInt64_Wang 4.16 μs 4.3 ns 4.16 μs +0.1%
IntegerHasherBenchmark.UInt64_WangNaive 1.87 μs 0.9 ns 1.87 μs -0.0%

Same-runner A/B (sharded 6-way): main (9fd8d26) and this PR were built and benchmarked back-to-back on the same runner per shard, so hardware variance cancels out. ⚠️ = PR mean ≥ +10% slower than main and beyond combined std-dev; ✅ = correspondingly faster.

@marius-bughiu
marius-bughiu merged commit ab317ed into main Jul 23, 2026
15 checks passed
@marius-bughiu
marius-bughiu deleted the chore/code-review/cuckoofilter-isfull-doc branch July 24, 2026 22:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automated:code-review PR or issue opened by celerity---code-review sweep

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants