JavaScript y las prestaciones

Motores del puente giratorio JavaScript no es mi lenguaje favorito y estoy por decir que sus efectos en la web de hoy en día están siendo poco útiles. Sin embargo, simpatizo con cualquier cosa que nos pueda hacer mejorar en algo y en How JavaScript engines achieve great performance porque, seguramente, se pueda aplicar a más dominios.

Me quedo con dos pinceladas, la detección de funciones ‘calientes’ (hot), esto es, funciones que se llaman con frecuencia y su traducción a instrucciones de máquina (otpimización cuando se necesita y no todo el rato: lo que haríamos con un perfilador). Con la ventaja de que al haberla ejecutado ya algunas veces se pueden hacer todavía más optimizaciones, estas especulativas, que todavía podrían hacer el código más rápido.

Whenever the JavaScript engine detects that a function is hot (that is, executed many times) it hands that function over to an optimizing compiler. This compiler translates the virtual machine instructions into actual machine instructions. What’s more, since the function has already been run several times, the optimizing compiler can make several assumptions based on previous runs. In other words, it can perform speculative optimizations to make even faster code.

Si se descubre que las suposiciones son falsas, se puede ‘desoptimizar’ y volver a comenzar el proceso.

What happens if, later on, these speculations turn out to be wrong? The JavaScript engine can simply delete the optimized, but wrong, function, and revert to using the unoptimized version. Once the function has been run several more times, it can attempt to pass it to the optimizing compiler again, this time with even more information that it can use for speculative optimizations.

Hay más, pero lo que procede es recomendar la lectura para sacarle todo el partido. Sobre todo si están interesados en el tema.

 Date: March 28, 2022
 Categories:  javascript
 Tags:  programación desarrollo lenguajes optimizaciones

Previous
⏪ La protección de secretos en sistemas

Next
La cadena de suministro y la seguridad ⏩