494-mal schnelleres Wortzählen mit SIMD und Threads

2025-08-17

Dieser Artikel beschreibt den Weg des Autors bei der Optimierung eines Wortzählprogramms, das eine bemerkenswerte 494-fache Beschleunigung erreicht. Beginnend mit einer naiven Python-Implementierung (89,6 Sekunden) verbesserte der Autor die Leistung schrittweise mithilfe des CPython-Moduls `re` (13,7 Sekunden), einer skalaren C-Schleife (1,205 Sekunden) und schließlich SIMD-Instruktionen und Multithreading (181 Millisekunden). Jeder Optimierungsschritt wird erklärt, einschließlich der Verwendung von C-Erweiterungen, effizienten C-Schleifen und der Nutzung von Multi-Core-CPUs. Obwohl Multithreading weniger als erwartete Verbesserungen brachte, erreichte die endgültige Version eine beeindruckende Verarbeitungsgeschwindigkeit von 5,52 GiB/s. Der Autor lädt die Leser ein, weitere Optimierungen vorzuschlagen.

Mehr lesen
Entwicklung

Dumac: Signifikante Performance-Verbesserungen bei einem macOS-Festplattennutzungsprogramm

2025-08-11

Dumac, ein macOS-Dienstprogramm zur Festplattennutzung, das schneller als `du -sh` ist, nutzt den macOS-spezifischen Systemaufruf `getattrlistbulk`. Nach der Einarbeitung von Feedback aus der Community konnte der Autor die Leistung um ca. 33 % steigern, indem er von Tokio auf Rayon für einen besseren Parallelismus umstellte und das Sharding des Inode-Hash-Sets optimierte. Die Behebung von Inode-Konflikten durch eine verfeinerte Sharding-Strategie führte zu weiteren Geschwindigkeitsgewinnen.

Mehr lesen
Entwicklung

Schnelle Spiele-Prototypenerstellung mit LÖVE

2024-12-31

Ein Programmierer, der 2025 ein vollständiges Spiel fertigstellen möchte, hat mit dem LÖVE2D-Framework in Lua Prototypen von Schach- und Kartenspielen erstellt. Die einfache, aber leistungsstarke API von LÖVE ermöglichte komplexe UI-Interaktionen mit minimalem Code, weiter beschleunigt durch LLM-gestützte Codegenerierung. Der Autor fand LÖVE ideal für die Prototypenerstellung, insbesondere für die Benutzeroberfläche, bemerkte aber die Notwendigkeit von Verbesserungen beim Hot Reloading und der Logiktrennung für größere Projekte. Der Plan ist, LÖVE zu verwenden, um einen grundlegenden Spiel-MVP zu entwickeln.

Mehr lesen