Avatar ·

Por qué mi código en C++ se ralentiza mucho cuando el tamaño del array es 8192?

Hola a todos. Estoy escribiendo un programa en C++ para procesamiento de imágenes. Encontré un problema extraño: cuando el tamaño de mi array (o el paso del loop) es exactamente 8192 elementos, el programa comienza a funcionar 10 veces más lento. Con tamaño 8191 o 8193, todo vuela. Aquí hay un código simplificado que reproduce el problema: ```cpp #include #include #include int main() { const int SIZE = 8192; // Si se cambia a 8191 o 8193 — la velocidad es 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 << "Tiempo: " << elapsed.count() << " s, suma: " << sum << std::endl; return 0; } ```