Avatar ·

¿Por qué un bucle sobre un array de 240+ elementos es 10 veces más lento en Rust?

¡Hola, colegas! Estoy aprendiendo Rust y me encontré con un extraño problema de rendimiento al iterar sobre arrays. Escribí un benchmark simple que suma los elementos de un array en un bucle `for`. Para arrays de menos de 240 elementos, el código se ejecuta muy rápido, pero cuando el tamaño llega a 240 o más, el rendimiento cae drásticamente, aproximadamente 10 veces. Aquí está mi código: ```rust fn sum_array(arr: &[i32]) -> i32 { let mut sum = 0; for &x in arr { sum += x; } sum } fn main() { let size = 240; let arr: Vec = (0..size).collect(); let start = std::time::Instant::now(); let result = sum_array(&arr); let duration = start.elapsed(); println!("Sum: {}, Time: {:?}", result, duration); } ``` Probé cambiar `size` de 239 a 240, y la diferencia es enorme. Al principio pensé que estaba relacionado con la caché del procesador, pero entonces la caída debería ser gradual, no abrupta. Uso Rust 1.75, compilo con `--release`. ¿Quizás es un bug de LLVM?