Terminología
CLI: Common Language Infrastructure es una especificación bajo el framework .NET que define un entorno de ejecución independiente del lenguaje y multiarquitectura. Por lo tanto, podemos desarrollar software en varios lenguajes de alto nivel bajo la especificación que pueda ejecutarse en diferentes arquitecturas de ordenadores sin modificaciones
CLR: Tiempo de ejecución en lenguaje común. es una especificación que garantiza que el entorno operativo sea independiente del lenguaje y entre arquitectónicos
CTS: Sistema de tipos comunes
CLS: Especificación de Lenguaje Común
FCL: Framework Class Library 架构类库,包含两部分: 基础类库 Base Class Library 和成品类库
IL: Lenguaje Inmediato Lenguaje Intermedio, Compilador de Lenguajes Avanzados compila el código fuente de lenguajes avanzados en lenguajes intermedios.
JIT: Just In Time Compiler compila un lenguaje intermedio en código máquina que un ordenador puede entender, y que luego puede ejecutarse
El código fuente se compila en IL mediante el compilador de C# (es decir, programas, dlls, exes, etc.). El CLR carga estos ILs, los compila en código máquina mediante JIT y finalmente se ejecuta, como se muestra en la siguiente figura:
JIT (compilador justo a tiempo) se compila al vuelo
El compilador just-in-time (JIT) forma parte del Common Language Runtime (CLR) en .NET y es responsable de gestionar el archivo . .NET, independientemente de cualquier programa . Lenguaje de programación .NET. Los compiladores específicos de cada lenguaje convierten el código fuente a lenguajes intermedios. Este lenguaje intermedio se convierte entonces en código máquina mediante un compilador just-in-time (JIT). Este código máquina es específico del entorno informático en el que se ejecuta el compilador JIT. Trabajo de compilador JIT: Los compiladores JIT necesitan acelerar la ejecución de código y proporcionar soporte para múltiples plataformas. Así es como funciona:
El compilador JIT convierte Microsoft Intermediate Language (MSIL) o Common Intermediate Language (CIL) en código máquina. Esto se hace antes de realizar MSIL o CIL. MSIL se convierte a código máquina según sea necesario, es decir, el compilador JIT compila MSIL o CIL según sea necesario, en lugar de compilar todo el código. Almacena el MSIL o CIL compilado para que pueda usarse en llamadas posteriores si es necesario.
Ventajas de JIT:
- Puede compilarse y generarse en tiempo real según la situación actual del hardware
- La secuencia óptima de instrucciones de la máquina puede generarse según la operación actual del programa
- Cuando un programa necesita soportar enlace dinámico, solo puede usar el método de compilación JIT
- El código puede ajustarse según la situación real de la memoria en el proceso para hacer un mejor uso de la memoria
Contras de JIT:
- La compilación requiere los recursos del tiempo de ejecución, lo que provoca que el proceso se entretenga al ejecutarse
- La compilación consume tiempo de ejecución, y algunas optimizaciones de compilación de código no pueden ser totalmente soportadas, por lo que es necesario equilibrar fluidez y tiempo
- La preparación de la compilación y la identificación de los métodos usados con frecuencia consumen mucho tiempo, y la compilación inicial no logra el mayor rendimiento
AOT (compilador por adelantado) se compila de antemano
En informática, la compilación temprana (compilación AOT) es el acto de compilar un lenguaje de programación (normalmente) de alto nivel en uno (normalmente) de bajo nivel antes de ejecutar un programa, generalmente en tiempo de compilación, para reducir la cantidad de esfuerzo que debe realizarse en tiempo de ejecución.
La mayoría de las veces, no es lo mismo que combinar lenguajes de programación de alto nivel (como C o C++) o representaciones intermedias como el bytecode de Java o . NET Framework Common Intermediate Language (CIL) compilado para ser nativo (dependiente del sistema) relacionado con el comportamiento. código máquina para que los binarios resultantes puedan ejecutarse de forma nativa, igual que un compilador nativo estándar. Cuando se utiliza en este entorno específico, a menudo se considera la antítesis de la compilación justo a tiempo (JIT).
La compilación AOT ocurre antes de que el programa esté compilado o instalado, es decir, precompila scripts o bytecodes en código máquina y los ejecuta directamente cuando es necesario. Esto puede mejorar la velocidad de inicio del programa y evitar retrasos causados por el proceso de compilación.
Ventajas de la AOT:
- Compilar antes de que el programa se ejecute evita el rendimiento de compilación y el consumo de memoria en tiempo de ejecución
- El rendimiento máximo puede alcanzarse al principio del programa
- Puede acelerar significativamente la eficiencia de la ejecución del programa
Contras de AOT:
- Compilar antes de que el programa se ejecute aumenta el tiempo que tarda en instalarlo
- Guardar contenido precompilado ocupa más memoria
- Sacrificar la coherencia de los lenguajes de alto nivel
resumen
JIT: Alto rendimiento, bonificación en rendimiento en tiempo de ejecución, puede funcionar más rápido y generar código dinámicamente, etc., pero es relativamente lento para arrancar y requiere cierto tiempo y frecuencia de llamadas para activar el mecanismo de capas JIT AOT: Bajo uso de memoria, velocidad de arranque rápida, puede enlazar directamente el tiempo de ejecución estáticamente con el programa final sin necesidad de ejecución, pero no hay bonificación en rendimiento en tiempo de ejecución y no puede optimizarse más según la ejecución del programa
Referencia:
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.
|