Eine einfache Docker-Build-Pipeline für eine Rust-Website dauert ~4 Minuten, selbst mit cargo-chef immer noch ~3 Minuten.
Rustc-Self-Profiling mit measureme und flamegraphs zeigt LTO (Link Time Optimization) als Hauptzeitfresser.
Deaktivieren von LTO und vollen Debug-Symbolen reduziert die Kompilierzeit der Hauptbinary auf ~50 Sekunden.
Das Setzen von opt-level=1 oder 0 für die Hauptbinary senkt die Zeit weiter auf ~15–50 Sekunden, je nach Einstellung.
Feinjustierung der LLVM-Inlining-Parameter über -C llvm-args senkt die Zeit auf ~40 Sekunden.
Detaillierte Analyse mit LLVM trace events identifiziert teure OptFunction- und InlinerPass-Durchläufe.
Große async-Funktionen waren teuer: Aufteilen und Boxen von Futures (Pin<Box<dyn Future>>) reduzierte eine Funktion von 5,3 s auf 2,1 s.
Änderungen in Abhängigkeiten (nicht-generische APIs) und lokale Umstrukturierungen ließen die Gesamtbauzeit von 175 s auf 32 s schrumpfen.
Praktische Empfehlungen: Für geringe Last genügt opt-level=0; langfristig sollten Compiler-Heuristiken für async und drop_in_place verbessert werden.
Get notified when new stories are published for "🇩🇪 Hacker News Deutsch"