ESLint: Einführung von Multithread-Linting verbessert die Geschwindigkeit großer Projekte um bis zu das Dreifache
(eslint.org)Kernzusammenfassung
- Mit ESLint v9.34.0 wurde Multithread-Linting hinzugefügt, sodass mehrere Dateien gleichzeitig verarbeitet werden können.
- Ziel ist es, die Linting-Zeit in großen Codebasen spürbar zu verkürzen.
- Eine Funktion, die über 10 Jahre vorbereitet wurde, ist damit offiziell eingeführt.
Was wurde besser
- CPU-Kerne werden besser genutzt, wodurch sich die gesamte Linting-Zeit durch Parallelverarbeitung verringert.
- Besonders effektiv bei Monorepos oder großen Repositories mit vielen Dateien.
Verwendung
- In der CLI gibt es eine Option zur Steuerung der Parallelität (Anzahl der Threads), z. B. über Einstellungen rund um
concurrency. - Der Wert für die Parallelität lässt sich passend zur Projekt- oder CI-Umgebung anpassen, um den optimalen Punkt zu finden.
Einschränkungen und Hinweise
- Beim Ausführen über einige externe Wrapper oder Integrationstools gibt es Berichte, dass die Leistung nicht immer wie erwartet ausfällt (abhängig von der Kombination aus Umgebung und Tooling).
- Da es sich um eine neue Funktion handelt, wird empfohlen, bei der Einführung in den Linting-Workflow sowohl in CI als auch lokal Leistung und Stabilität gemeinsam zu prüfen.
Tipps für die Einführung
- Statt das gesamte Repository auf einmal umzustellen, besser schrittweise auf Verzeichnisebene einführen und dabei den passenden Parallelitätswert ermitteln.
- In CI sollten Cache und Parallelisierungsstrategie gemeinsam angepasst werden; außerdem sollten Regeln oder Plugins mit großen Engpässen (Datei-I/O, Ausführungszeit von Regeln) zuerst geprüft werden.
Kurzfazit
- „Das lang erwartete parallele Linting ist da — ein guter Zeitpunkt, um die Linting-Zeiten in großen Projekten spürbar zu verbessern.“
2 Kommentare
Wie steht es wohl im Vergleich zu Biome um die Geschwindigkeit?
biome ist weiterhin schneller. Aber wenn man nur auf die Geschwindigkeit schaut, ist voidzeros oxlint noch schneller.
Da biome in Sachen Bedienbarkeit und Dokumentation angenehmer ist, wirkt diese Multithreading-Optimierung zwar erstaunlich, aber wenn das bestehende ESLint nicht schneller und zugleich stabiler wird, indem es statt der Kombination ESLint + Prettier auf ESLint + ESLint Stylistic setzt, könnte es am Ende irgendwann doch ersetzt werden.