</>
Plan du cours — 63/66

Performance

Avancé
cargo build --release                       # toujours mesurer en release !

cargo install flamegraph && cargo flamegraph    # profilage
cargo bench                                     # benchmarks
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
panic = "abort"      # binaire plus petit, pas de déroulement de pile
// Éviter les allocations inutiles
let mut v = Vec::with_capacity(1000);       // pré-allouer
fn traiter(s: &str) {}                      // emprunter plutôt que cloner
use std::borrow::Cow;                       // clone paresseux

Pour des benchmarks fiables, utilisez la crate criterion (ou divan) plutôt que de chronométrer à la main.