PGO: Rust testet Compiler-Optimierung für schnelleren Compiler
Profile Guided Optimization hat bereits den Browsern Chrome und Firefox für Verbesserungen geholfen. Nun könnte Rust folgen.

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, 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 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.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Und das machte Sinn? Hatten die damals schon genug Speicher für den Aufwändigen LLVM...