Supongamos que en un código de velocidad crítica, tenemos un par de matrices que se usan frecuentemente juntas, donde el tamaño exacto no importa, solo necesita establecerse en algo razonable, p.Evitar potencias de 2 para compatibilidad con caché
int a[256], b[256];
¿Es esta potencialmente un pessimization porque los bits de dirección bajos siendo la misma puede hacer que sea más difícil para el caché de manejar simultáneamente ambas matrices? ¿Sería mejor especificar, p. 300 en lugar de 256?
Tiene razón al sospechar que los poderes de dos podría ser problemático. Pero generalmente solo se aplica cuando tienes más de 2 pasos. (especialmente cuando excede su asociatividad de caché L1) [Aquí hay un ejemplo de dónde realmente se vuelve problemático.] (http://stackoverflow.com/questions/8547778/why-is-one-loop-so-much-slower-than -two-loops) En ese ejemplo, hay 4 arrays, todos los cuales están alineados con el mismo desplazamiento desde el inicio de una página de 4k. – Mysticial