Les builds Docker de projets Rust recompilent tout à chaque changement, prenant jusqu’à 4 minutes sans cache.
Cargo-chef permet de mettre en cache les dépendances dans Docker, mais le binaire final reste très lent (~3 min) à compiler.
Le profilage de rustc (-Z self-profile et outils measureme) montre que LTO (Link Time Optimization) et LLVM_module_codegen sont responsables de 80 % du temps.
Désactiver LTO et les symboles de debug ramène le temps à ~50 s, puis baisser opt-level et ajuster les seuils d’inlining réduit encore la durée.
Le profilage des passes LLVM (-Zllvm-time-trace) et l’ajustement des options d’inliner et d’OptFunction font gagner environ 8 s.
Réorganiser les grosses fonctions async, factoriser en futures dynamiques (Pin<Box<dyn Future>>) diminue fortement le temps d’optimisation, aboutissant à un build Docker à ~32 s.
Get notified when new stories are published for "🇫🇷 Hacker News Français"