Como medir corretamente o desempenho (benchmarking) de programas em Rust?
Olá a todos! Sou novo em Rust e estou tentando entender como medir corretamente o desempenho dos meus programas. Em outras linguagens (como Python ou JavaScript), eu simplesmente usava timers embutidos ou módulos, mas em Rust tudo se mostrou mais complicado.
Eu escrevi uma função simples que soma os elementos em um vetor, e quero saber quanto tempo ela leva para executar:
```rust
fn sum_vec(vec: &Vec) -> i32 {
let mut sum = 0;
for i in vec {
sum += i;
}
sum
}
fn main() {
let data = vec![1; 1_000_000];
// Como medir o tempo de execução de sum_vec(&data)?
println!("Sum: {}", sum_vec(&data));
}
```
Tentei usar `std::time::Instant`, mas obtenho resultados estranhos: às vezes 0 microssegundos, às vezes valores muito diferentes em execuções repetidas.