Radix-Sort schlägt Hash-Tabellen: Ein Performance-Vergleich zum Zählen eindeutiger Werte
Beim Zählen eindeutiger Werte in einem großen Array von hauptsächlich eindeutigen uint64s ist Radix-Sort, wenn gut optimiert, typischerweise schneller als Hash-Tabellen. Durch effiziente Nutzung der Speicherbandbreite und geschickte Fusion von Hashing mit dem Sortiervorgang erreicht Radix-Sort eine bis zu 1,5-fache Beschleunigung gegenüber optimierten Hash-Tabellen für Datensätze größer als 1 MB und ist bis zu 4-mal schneller als die hervorragenden "Swiss Table"-Hash-Tabellen von Rust. Die Performance von Radix-Sort verschlechtert sich jedoch bei ungleichmäßigen Datenverteilungen. Hier hilft eine invertierbare Hash-Funktion zur Vorverarbeitung der Daten, um die Effizienz zu erhalten. Der Artikel vergleicht beide Ansätze bei unterschiedlichen Datengrößen und Zugriffshäufigkeiten und diskutiert die Strategien für die Auswahl in realen Anwendungen.