Standard Docker-bygninger af Rust genopbygger altid alt fra bunden og tager typisk ~4 minutter.
cargo-chef kan cache dependencies, men den endelige binære kompilering bruger stadig ~3 minutter.
Profilering med rustc selv (–Zself-profile) viser, at LTO og LLVM-optimeringer (codegen, inlining) dominerer kompileringstiden.
Deaktivering af LTO og debug-symboler sænker tiden til ~50 sekunder, og at sætte opt-level på 0 på slutbinæren giver ~15 sekunder.
Tuning af LLVM inline-threshold-parametre reducerer byggetiden fra ~49s til ~41s.
Chrome-trace-format fra –Zllvm-time-trace afslører, at OptFunction og InlinerPass samt optimering af async closures og core::ptr::drop_in_place er de tungeste operationer.
Skift til symbol-mangling-version v0 giver klar demangling af generiske funktioner og closures, så man præcist kan se langsomme metoder.
Refaktorering ved at erase futures med Pin<Box<dyn Future>> og uddele store async-funktioner halverer kompileringstiden for individuelle funktioner (f.eks. PhotosState::new fra 5.3s til 2.1s).
Sammenlagt (LLVM-args, kodeændringer og afhængighedsændringer) opnås en samlet byggetid på ~32 sekunder.
Get notified when new stories are published for "🇩🇰 Hacker News Dansk"