¿Qué es el compilador Just-In-Time (JIT) en .NET?

El compilador Just-In-Time (JIT) es una parte de Common Language Runtime (CLR) en .NET que es responsable de administrar la ejecución de programas .NET independientemente de cualquier lenguaje de programación .NET . Un compilador específico del idioma convierte el código fuente al idioma intermedio. El compilador Just-In-Time (JIT) convierte este lenguaje intermedio en el código de máquina. Este código de máquina es específico del entorno informático en el que se ejecuta el compilador JIT. 

Funcionamiento del compilador JIT: se requiere el compilador JIT para acelerar la ejecución del código y brindar soporte para múltiples plataformas. Su funcionamiento se da de la siguiente manera: 

El compilador JIT convierte el lenguaje intermedio de Microsoft (MSIL) o el lenguaje intermedio común (CIL) en código de máquina. Esto se hace antes de que se pueda ejecutar MSIL o CIL. El MSIL se convierte en código de máquina según los requisitos, es decir, el compilador JIT compila el MSIL o CIL según sea necesario en lugar de todo. El MSIL o CIL compilado se almacena para que esté disponible para llamadas posteriores si es necesario. 

Tipos de compilador Just-In-Time: Hay 3 tipos de compiladores JIT que son los siguientes: 

  • Compilador Pre-JIT: todo el código fuente se compila en el código de la máquina al mismo tiempo en un solo ciclo de compilación utilizando el Compilador Pre-JIT. Este proceso de compilación se realiza en el momento de la implementación de la aplicación. Y este compilador siempre se implementa en Ngen.exe (Native Image Generator)

  • Compilador JIT normal: los métodos de código fuente que se requieren en tiempo de ejecución se compilan en código de máquina la primera vez que el compilador JIT normal los llama. Después de eso, se almacenan en el caché y se usan cada vez que se vuelven a llamar. 

  • Compilador Econo JIT: los métodos de código fuente que se requieren en tiempo de ejecución se compilan en código de máquina mediante el compilador Econo JIT. Una vez que estos métodos ya no son necesarios, se eliminan. Este compilador JIT está obsoleto a partir de dotnet 2.0

Ventajas del compilador JIT: 

  • El compilador JIT requiere menos uso de memoria, ya que solo los métodos que se requieren en tiempo de ejecución se compilan en código de máquina mediante el compilador JIT.
  • Las fallas de página se reducen al usar el compilador JIT ya que los métodos requeridos juntos probablemente estén en la misma página de memoria.
  • El compilador JIT puede realizar la optimización del código basada en el análisis estadístico mientras se ejecuta el código.

Desventajas del compilador JIT:  

  • El compilador JIT requiere más tiempo de inicio mientras la aplicación se ejecuta inicialmente.
  • El compilador JIT utiliza mucho la memoria caché para almacenar los métodos de código fuente que se requieren en tiempo de ejecución.

Nota: Gran parte de las desventajas del compilador JIT se pueden manejar mediante la compilación Ahead-of-time (AOT). Esto implica compilar el MSIL en código de máquina para que no se requiera la compilación en tiempo de ejecución y el archivo de código de máquina se pueda ejecutar de forma nativa.
 

Publicación traducida automáticamente

Artículo escrito por harkiran78 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *