Avatar ·

Pourquoi mon code C++ ralentit-il fortement avec une taille de tableau de 8192 ?

Bonjour à tous. J'écris un programme en C++ pour le traitement d'images. J'ai découvert un problème étrange : lorsque la taille de mon tableau (ou le pas de la boucle) est exactement de 8192 éléments, le programme devient 10 fois plus lent. Avec une taille de 8191 ou 8193, tout vole. Voici un code simplifié qui reproduit le problème : ```cpp #include #include #include int main() { const int SIZE = 8192; // Si on remplace par 8191 ou 8193 — la vitesse est normale 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 << "Temps : " << elapsed.count() << " s, somme : " << sum << std::endl; return 0; } ```