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;
}
```
No answers yet.
Faça login para deixar uma resposta