Avatar ·

Wie man die Leistung von Rust-Code richtig misst: Benchmarking und Profiling

Hallo Kollegen! Ich schreibe seit etwa einem halben Jahr in Rust und bin auf ein Problem gestoßen: Ich kann nicht richtig messen, wie lange mein Code braucht. Ich habe versucht, std::time::Instant zu verwenden, aber die Ergebnisse schwanken von Lauf zu Lauf, besonders bei kleinen Funktionen. Zum Beispiel möchte ich zwei Methoden zum Summieren eines Vektors vergleichen: ```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()); } ``` Auf meinem Laptop