Búsqueda de sitios web

optimización - compilador de Typescript, o ES2015 - ¿alguno optimiza el código?


En el mundo de los compiladores para otros lenguajes, algo como esto se optimizaría cuando se compile para sacarlo del bucle, de modo que no se cree un nuevo objeto cada vez:

const arr = [1, 2, 3, 4, 5]

arr.map(num => {

    const one_time = 5; // this never changes, can be lifted out of the loop.

    return num * one_time;
 })

Intenté ver si el compilador de TypeScript cambia el código anterior, pero no parece ser así; ¿tal vez algo más se encarga de ello? O tal vez la creación del objeto asignará esa variable y nunca la cambiará.

No espero que ES2015 lo haga ya que es interpretado, pero estoy feliz de equivocarme.

Puntos extra si alguien puede decirme cómo averiguar esto por mí mismo en el futuro.

¡Gracias, chicos!

Respuesta #1

No, el compilador de TypeScript no realiza ninguna optimización. Ese es uno de sus no objetivos:

No objetivos

  • Optimiza agresivamente el rendimiento en tiempo de ejecución de los programas. En su lugar, genera código JavaScript idiomático que funcione bien con las características de rendimiento de las plataformas de ejecución.

Fuente: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals

En cuanto a ES2015, esa es una especificación del lenguaje. Sin embargo, los motores de JS compilarán y optimizarán.

Artículos relacionados