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
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen