La imágenes nativas generador , o simplemente NGen , es el futuro-de-tiempo de compilación (AOT) servicio del .NET Framework . Permite precompilar un ensamblado CLI en lugar de permitir que Common Language Runtime (CLR) realice una compilación justo a tiempo (JIT) en tiempo de ejecución. En algunos casos, la ejecución será significativamente más rápida que con JIT.
Información general
El generador de imágenes nativas produce una imagen binaria nativa para el entorno actual (es decir, sistemas operativos). Esto elimina la sobrecarga de JIT a expensas de la portabilidad y el espacio en disco; siempre que se ejecuta una imagen generada por NGen en un entorno incompatible, .NET Framework vuelve automáticamente a utilizar JIT. Una vez que NGen se ejecuta en un ensamblado, la imagen nativa resultante se coloca en la caché de imágenes nativas (NIC) para que la utilicen todos los demás ensamblados de la CLI. Esto hace posible, por ejemplo, usar NGen para procesar ensamblajes CLI en el momento de la instalación, ahorrando tiempo de procesador más adelante, cuando el usuario final invoca la aplicación en su sistema.
NGen tiene la intención de hacer que el ensamblado se ejecute más rápido eliminando el proceso de compilación JIT en tiempo de ejecución, pero esto no siempre mejora el rendimiento porque algunas optimizaciones solo pueden ser realizadas por un compilador JIT (por ejemplo, si el compilador JIT sabe que el código ya se está ejecutando con plena confianza, puede saltarse ciertos costosos controles de seguridad). Debido a este hecho, tiene sentido usar NGen solo después de comparar el rendimiento de la aplicación antes y después de esta.