El código optimizado para caché es mucho más rápido de lo que piensas
Los programadores a menudo se centran en la complejidad algorítmica, pasando por alto el impacto de la jerarquía de memoria del hardware moderno en el rendimiento. Este artículo compara experimentalmente las diferencias de rendimiento entre el acceso a la memoria secuencial, indirecto y aleatorio. Los resultados muestran que el acceso secuencial es el más rápido, mientras que el acceso aleatorio es un orden de magnitud más lento. Optimizar los patrones de acceso a la memoria es crucial para el rendimiento; incluso las operaciones simples obtienen ganancias masivas con el diseño de memoria optimizado. El artículo aconseja considerar los patrones de acceso a la memoria al diseñar estructuras de datos y algoritmos, por ejemplo, colocando datos usados con frecuencia de forma contigua en la memoria para aprovechar el caché de la CPU y evitar fallos de caché.