Optimización de implementaciones de AOT
El proceso de publicación de AOT nativo genera un ejecutable independiente con un subconjunto de las bibliotecas en tiempo de ejecución que se adaptan específicamente a la aplicación. La compilación generalmente se basa en el análisis estático de la aplicación para generar la mejor salida posible. Sin embargo, el término "mejor posible" puede tener muchas interpretaciones. A veces, para mejorar la salida de la compilación puede proporcionar sugerencias para el proceso de publicación.
Optimización del tamaño o la velocidad
Durante la compilación, el proceso de publicación debe decidir entre generar el ejecutable teóricamente más rápido posible y el tamaño del mismo. De forma predeterminada, el compilador elige un enfoque combinado: generar código rápido, pero teniendo en cuenta el tamaño de la aplicación.
La propiedad <OptimizationPreference>
de MSBuild se puede usar para comunicar un objetivo de optimización general en lugar del enfoque predeterminado combinado:
<OptimizationPreference>Size</OptimizationPreference>
Si se establece OptimizationPreference
en Size
se indica al proceso de publicación que favorezca el tamaño del archivo ejecutable en lugar de otras métricas de rendimiento. Se espera que el tamaño de la aplicación sea menor, pero es posible que se vean afectadas otras métricas de rendimiento.
<OptimizationPreference>Speed</OptimizationPreference>
Si se establece OptimizationPreference
en Speed
se indica al proceso de publicación que favorezca la velocidad de ejecución del código. Se espera que el pico de rendimiento sea mayor, pero es posible que se vean afectadas otras métricas de rendimiento.
Opciones adicionales de optimización de tamaño
Dado que las implementaciones de AOT nativas implican el uso del recorte, es posible mejorar aún más el tamaño de la aplicación especificando más opciones de recorte. Por ejemplo, en la sección Características de recorte de bibliotecas de marco de trabajo se describe cómo deshabilitar las funcionalidades de las bibliotecas, como la globalización.