Código otimizado para cache é muito mais rápido do que você imagina
Programadores geralmente se concentram na complexidade algorítmica, ignorando o impacto da hierarquia de memória do hardware moderno no desempenho. Este artigo compara experimentalmente as diferenças de desempenho entre acesso à memória sequencial, indireto e aleatório. Os resultados mostram que o acesso sequencial é o mais rápido, enquanto o acesso aleatório é uma ordem de magnitude mais lento. Otimizar os padrões de acesso à memória é crucial para o desempenho; mesmo operações simples obtêm ganhos massivos com o layout de memória otimizado. O artigo aconselha a considerar os padrões de acesso à memória ao projetar estruturas de dados e algoritmos, por exemplo, colocando dados usados com frequência de forma contígua na memória para alavancar o cache da CPU e evitar erros de cache.
Leia mais