A Count-Min Sketch estimates how many times an item has appeared in a huge stream while using only a small fixed grid of counters. Every item is hashed independently into one column per row; each arrival increments a counter in every row. Because different items can collide in the same column, a counter can be inflated by other items — so the true frequency is estimated as the minimum value across all rows for that item's hashed positions. The minimum is always greater than or equal to the true count, and collisions can only push the estimate up, never down.
Each row uses its own real hash function (an FNV-1a-style mix seeded differently per row), so an item lands in a different column in each row. Feed the stream, watch counters climb, and compare the tracked item's live estimate to its true count. A skewed stream repeatedly hits a small set of "heavy hitter" items, which is exactly the workload count-min sketches are built for.
Choose a stream type, adjust the simulation speed, pause/resume the arrivals, or rebuild the sketch with a fresh randomly tracked item.
A Count-Min Sketch with just a handful of rows and a few thousand columns can accurately estimate frequencies across a stream containing hundreds of millions of distinct items, using only kilobytes of memory.