60% schnellere Substring-Suche in Zig mit SIMD
Dieser Artikel beschreibt, wie der Autor eine etwa 60%ige Beschleunigung der Substring-Suche in der Programmiersprache Zig mithilfe von SIMD-Instruktionen erreicht hat. Ein SIMD-freundlicher Algorithmus wurde implementiert, der das erste und letzte Zeichen des Ziel-Substrings extrahiert und parallele SIMD-Vergleiche nutzt, um die Speicherzugriffe deutlich zu reduzieren. Benchmarks zeigen eine Reduktion der CPU-Zyklen um 80% und erhebliche Geschwindigkeitsverbesserungen, insbesondere bei großen Texten. Obwohl die Gewinne bei kleineren Texten geringer sind, wird das Potenzial von SIMD deutlich demonstriert. Der Artikel untersucht auch Leistungsvariationen mit verschiedenen Zeichenauswahlen und SIMD-Instruction Sets (AVX2, AVX-512) und erörtert, warum diese Optimierung nicht in die Standardbibliothek von Zig integriert wurde.
Mehr lesen