En cuanto al rendimiento, ¿es mejor acceder un elemento de matriz 'directamente' varias veces, o asignarle su valor a una variable y usar esa variable? Suponiendo que haré referencia al valor varias veces en el siguiente código.Acceder directamente a un elemento de matriz vs. asignarlo a una variable
El razonamiento detrás de esta pregunta es que, el acceso a un elemento de matriz presumiblemente implica algún costo de cálculo cada vez que se realiza, sin requerir espacio adicional. Por otro lado, almacenar el valor en una variable elimina este costo de acceso, pero ocupa más espacio.
// use a variable to store the value
Temp = ArrayOfValues(0)
If Temp > 100 Or Temp < 50 Then
Dim Blah = Temp
...
// reference the array element 'directly'
If ArrayOfValues(0) > 100 Or ArrayOfValues(0) < 50 Then
Dim Blah = ArrayOfValues(0)
...
Sé que esto es un ejemplo trivial, pero asumiendo que estamos hablando de una escala mayor en el uso real (donde el valor se hace referencia muchas veces) en qué momento es el compromiso entre el espacio y el tiempo de computación pena ¿considerando (si es que lo hace)?
Un compilador de optimización va a hacer esto totalmente discutible para los HLL. Si está utilizando el ensamblaje o tiene las optimizaciones desactivadas, los registros son más rápidos que el caché, por lo que debe cargar valores utilizados con frecuencia en los registros tanto como sea posible. En general, creo que el punto de inflexión entre la presión de registro y la jerarquía de la memoria es probablemente una cuestión empírica. – Patrick87