En JavaScript, con mi propia aplicación emulador, para obtener el valor del campo de registro RA
de una instrucción de 32 bits i
es a menudo representado como:'inline' en JavaScript?
this.gpr.u32[(i >> 16) & 0x1f]
Sin embargo, tener la expresión anterior muchas veces en una función es fea y difícil de seguir y editar. He evitado definir una variable ra
con esa expresión y usarla porque pensé que se almacenaría en la memoria, y recuperarla sería costoso. ¿Debería preocuparme por esto o hacer que los motores de JavaScript modernos 'en línea' el valor de la variable en las declaraciones que siguen la definición? Aunque el uso de una variable hace que el código sea mucho más limpio, realmente no quiero usarlo si ralentiza el tiempo de ejecución en un entorno sensible al rendimiento, como un emulador.
Gracias! Entonces, lo que está diciendo es que cualquier latencia de acceso no deseado a 'ra' sería superada por la latencia de acceso no deseado de ir a buscar' i', hacer un turno, hacer un AND, y luego ir a buscar un elemento de 'this.gpr. u32', siempre que el motor no almacene en caché de forma automática la forma larga. –
@Delan Azabani: más o menos. Es mucho más fácil para un motor alinear una única variable que la expresión general y, por lo tanto, sospecho que la mayoría de los motores son mucho mejores en la primera. – Howard
Gracias de nuevo. Tu respuesta es muy útil. –