Avatar ·

Por que meu código em C++ fica muito mais lento com tamanho de array 8192?

Olá a todos. Estou escrevendo um programa em C++ para processamento de imagens. Encontrei um problema estranho: quando o tamanho do meu array (ou o passo do loop) é exatamente 8192 elementos, o programa começa a rodar 10 vezes mais devagar. Com tamanho 8191 ou 8193, tudo voa. Aqui está um código simplificado que reproduz o problema: ```cpp #include #include #include int main() { const int SIZE = 8192; // Se alterar para 8191 ou 8193 — a velocidade é normal std::vector> matrix(SIZE, std::vector(SIZE, 1)); auto start = std::chrono::high_resolution_clock::now(); long long sum = 0; for (int i = 0; i < SIZE; ++i) { for (int j = 0; j < SIZE; ++j) { sum += matrix[i][j]; } } auto end = std::chrono::high_resolution_clock::now(); std::chrono::duration elapsed = end - start; std::cout << "Tempo: " << elapsed.count() << " s, soma: " << sum << std::endl; return 0; } ```