PGO: Rust testet Compiler-Optimierung für schnelleren Compiler
Das wohl wichtigste Werkzeug einer Programmiersprache ist deren Compiler. Inzwischen gibt es eine Vielzahl verschiedener Optimierungsstrategien für Software, die der Compiler umsetzt. Da aber auch Compiler selbst kompiliert werden müssen, liegt es nahe, diese Optimierungen auch auf den Compiler anzuwenden. Genau damit hat ein Mitglied des Rust-Compiler-Teams nun experimentiert, wie es im Blog mitteilt(öffnet im neuen Fenster), und dabei beeindruckende Ergebnisse erzielt.
Bei dem durchgeführten Tests handelt es sich um die Nutzung der sogenannten Profile Guided Optimization (PGO). Dabei soll im Gegensatz zur bisher üblichen statischen Code-Analyse das echte Verhalten einer Anwendung berücksichtigt werden. Google nutzt dies in Chrome, was den Browser teils deutlich beschleunigt. Auch Browserhersteller Mozilla nutzt die PGO im Firefox(öffnet im neuen Fenster) und kann die Zeit zum Bauen des Browsers damit deutlich reduzieren.
Auf Grundlage dieser Erkenntnisse folgt die Frage: "Wäre das Gleiche auch für den Rust-Compiler möglich, das heißt, könnten wir die profilgesteuerte Optimierung auf rustc selbst anwenden, um es schneller zu machen?". Wie die Tests nun gezeigt haben, ist die Antwort darauf ein deutliches Ja. So ist es dank PGO gelungen, die Anzahl der genutzten Befehle beim Kompilieren von Rust-Code mit dem optimierten Compiler um rund 5 Prozent zu verringern.
Darüber hinaus liegen die Verbesserungen der tatsächlich zum Kompilieren benötigten Zeit im besten Fall bei rund 15 Prozent, also eine spürbare Beschleunigung insbesondere für große Rust-Projekte. Der Einsatz des PGO-optimierten Compilers lohne sich demnach schon jetzt für interne Projekte, wie dies etwa Mozilla für seine Firefox-Builds macht, heißt es in dem Blog.
Ob das Rust-Projekt jedoch selbst künftig standardmäßig PGO-optimierte Builds des Rust-Compilers erstellt und verteilt, ist derzeit noch offen. Für eine Nutzung im CI-System der Rust-Community ist dies wohl zu viel Aufwand. Möglich wären jedoch PGO-Builds für die Stable- und Beta-Versionen, die deutlich weniger oft erstellt werden. Noch steht eine Entscheidung dazu aber aus.
- Anzeige Hier geht es zu Programmierung sicherer Systeme mit Rust bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.