Avatar ·

Comment mesurer correctement les performances du code Rust : benchmarking et profilage

Salut les collègues ! J'écris en Rust depuis environ six mois et j'ai rencontré un problème : je n'arrive pas à mesurer correctement le temps d'exécution de mon code. J'ai essayé d'utiliser std::time::Instant, mais les résultats varient d'une exécution à l'autre, surtout pour les petites fonctions. Par exemple, je veux comparer deux façons de sommer un vecteur : ```rust use std::time::Instant; fn sum_for(v: &[i32]) -> i32 { let mut sum = 0; for x in v { sum += x; } sum } fn sum_iter(v: &[i32]) -> i32 { v.iter().sum() } fn main() { let data = vec![1; 1_000_000]; let start = Instant::now(); let _ = sum_for(&data); println!("for: {:?}", start.elapsed()); let start = Instant::now(); let _ = sum_iter(&data); println!("iter: {:?}", start.elapsed()); } ``` Sur mon portable