Avatar ·

Cómo medir correctamente el rendimiento (benchmarking) de programas en Rust

¡Hola a todos! Soy nuevo en Rust y estoy tratando de entender cómo medir correctamente el rendimiento de mis programas. En otros lenguajes (por ejemplo, Python o JavaScript) simplemente usaba temporizadores o módulos integrados, pero en Rust resultó ser más complicado. Escribí una función simple que suma los elementos de un vector y quiero saber cuánto tiempo tarda en ejecutarse: ```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]; // ¿Cómo medir el tiempo de ejecución de sum_vec(&data)? println!("Sum: {}", sum_vec(&data)); } ``` Intenté usar `std::time::Instant`, pero obtengo resultados extraños: a veces 0 microsegundos, a veces valores muy diferentes en ejecuciones repetidas. También escuché sobre `cargo bench`, pero no entiendo cómo configurarlo. Por favor, indíquenme: 1. ¿Cómo medir correctamente el tiempo de ejecución de un fragmento pequeño de código? 2. ¿Cómo evitar la influencia del compil