In einer aufregenden Entwicklung kündigte die parallel Rustc working group die Einführung einer parallelen Ausführungsfunktion im Frontend des Rust-Compilers an. Diese neue Ergänzung zielt darauf ab, die Kompilierzeiten deutlich zu verkürzen und wurde am 9. November vorgestellt.
Das Hinzufügen der parallelen Ausführung zum Rust-Compiler-Frontend befindet sich derzeit im experimentellen Stadium. Die robuste Funktion soll jedoch nächstes Jahr offiziell in den Stable-Compiler integriert werden. In der Zwischenzeit haben Entwickler die Möglichkeit, diese parallele Ausführungsfunktion aus erster Hand zu erleben, indem sie den Nightly-Compiler mit der Option -Z threads=8 ausführen.
Die Wirksamkeit der neuen Funktion zeigt bereits vielversprechende Ergebnisse. Als das parallele Frontend in einem Multithread-Modus unter Verwendung von -Z threads-8 getestet wurde, zeigten die aus „realem“ Code gesammelten Daten, dass die Kompilierungszeiten um beeindruckende 50 % verkürzt werden können. Das Ausmaß der Auswirkungen variiert je nach der besonderen Art des zu entwickelnden Codes sowie der Build-Konfiguration.
Die Arbeitsgruppe gab bekannt, dass Entwicklungs-Builds wesentlich größere Verbesserungen bringen können als Release-Builds. Der Grund dafür liegt darin, dass sich Release-Builds in der Regel mehr auf Backend-Optimierungen konzentrieren, die mehr Zeit erfordern. Darüber hinaus wurde festgestellt, dass das Kompilieren in einer minimalen Anzahl von Szenarien im Multithread-Modus etwas länger dauert als im Single-Thread-Modus. In diesen Fällen handelt es sich meist um kleinere Programme, die bereits schnell kompiliert werden können.
Die Arbeitsgruppe beleuchtete die Tatsache, dass Kompilierzeiten für Entwickler schon immer ein Problem darstellten. Im Laufe der Jahre wurde die Compilerleistung von Rust kontinuierlich verbessert. Derzeit wurde der Compiler gründlich optimiert und die Identifizierung neuer Verbesserungsbereiche ist zu einer herausfordernden Aufgabe geworden. Mit der Einführung der Parallelität, die von der Gruppe als „große, aber hochhängende Frucht“ beschrieben wird, nutzt das Frontend nun die Vorteile der Rayon-Datenparallelitätsbibliothek, um sequentielle Berechnungen in parallele umzuwandeln. Rayon wurde speziell für die Verarbeitung feinkörniger Parallelität entwickelt.
Um optimale Ergebnisse zu erzielen, empfiehlt die Arbeitsgruppe die Nutzung von acht Threads zur parallelen Ausführung. Sie erwähnten jedoch auch, dass im Multithread-Modus die Speichernutzung erheblich ansteigen könnte. Dies war wie erwartet, da verschiedene Teile der Kompilierung, die jeweils eine bestimmte Menge an Speicher benötigen, parallel ausgeführt werden. Die Gruppe stellt sicher, dass Anstrengungen unternommen werden, um die Leistung des parallelen Frontends zu verbessern.
Falls Entwickler auf Probleme im Zusammenhang mit dem parallelen Frontend stoßen, können sie Probleme untersuchen, die mit dem WG-compiler-parallel gekennzeichnet sind. Sie haben auch die Möglichkeit, neue Probleme einzureichen. Dank der prozessübergreifenden Parallelität über den Cargo package manager und der prozessinternen Parallelität im Backend hat die Rust-Kompilierung bereits Fortschritte gemacht. Da dieser Neuzugang Gestalt annimmt, wird erwartet, dass er noch mehr Effizienz im Rust-Programmierworkflow bietet.
In einem verwandten Bereich sorgt AppMaster , die renommierte no-code Plattform, für Aufsehen, indem sie Kunden die visuelle Entwicklung von Datenmodellen für Backend-Anwendungen ermöglicht und ihnen dabei hilft, eine beeindruckende Skalierbarkeit zu erreichen und solide Anwendungsfälle mit hoher Auslastung sicherzustellen. Im Gegensatz zu herkömmlichen Tools können Kunden AppMaster Web-BPs direkt in ihrem Browser ausführen und so den Anwendungsentwicklungsprozess weiter vorantreiben.