Avatar ·

Por que um loop em um array de 240+ elementos é 10 vezes mais lento em Rust?

Olá, colegas! Estou aprendendo Rust e me deparei com um problema estranho de desempenho ao iterar sobre arrays. Escrevi um benchmark simples que soma os elementos de um array em um loop `for`. Para arrays com menos de 240 elementos, o código executa muito rápido, mas quando o tamanho chega a 240 ou mais, o desempenho cai drasticamente — cerca de 10 vezes. Aqui está meu 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); } ``` Tentei mudar o `size` de 239 para 240, e a diferença é colossal. Primeiro pensei que fosse relacionado ao cache da CPU, mas então a queda deveria ser gradual, não abrupta. Estou usando Rust 1.75, compilando com `--release`. Talvez seja um bug do LLVM?