[20/08/2021] .NET 6, la actualización prevista de la plataforma de desarrollo de software de Microsoft, cuenta con mejoras de rendimiento en áreas que van desde la compilación just-in-time (JiT) y la recolección de basura (GC) hasta JSON, según Microsoft.
En una extensa entrada de blog publicada el 17 de agosto, Steven Toub, desarrollador del equipo .NET de Microsoft, analizó las numerosas mejoras de rendimiento de .NET 6. Toub señaló que el JiT tiene un "número increíble" de mejoras de rendimiento, que afectan a aspectos como el inlining, que es el proceso por el cual el compilador toma el código de un método callee y lo emite en el caller. Al exponer el contenido del "callee" al contexto del "caller", el "inlining" permite optimizaciones "en cadena" que no serían posibles de otro modo.
El JiT se utiliza para traducir IL (lenguaje intermedio) a código ensamblador en tiempo de ejecución; también se utiliza para la compilación anticipada como parte de la optimización de código CrossGen2 y el formato R2R (listo para ejecutar).
En cuanto a la recolección de basura, .NET 6 se ha beneficiado de un gran trabajo para cambiar la implementación de la GC para que se base en regiones, en lugar de segmentos. Las regiones son unidades de memoria más pequeñas, lo que permite mejorar el rendimiento de la GC.
También se han introducido mejoras de rendimiento en los tipos de sistema, como en el caso de Guid, que se utiliza para proporcionar identificadores únicos para una serie de operaciones. Un nuevo generador de fuentes System.Text.Json también mejora el rendimiento. El tipo FileStream ha sido reescrito, solucionando problemas de rendimiento de E/S.
Otras mejoras que podrían llegar a .NET 6 son la compatibilidad con la reanudación de sesiones de Transport Layer Security (TLS) en Linux, que podría reducir el tiempo necesario para establecer conexiones seguras, y un uso más agresivo de los intervalos en la implementación de BigInteger.
.NET 6, que se espera que alcance el estado de versión de producción en noviembre, ha sido sometido a siete versiones preliminares beta, y la próxima fase será la de versión candidata. .NET 6 pretende completar la unificación de las tecnologías .NET de Microsoft, creando una única .NET a partir de las separadas .NET Core, .NET Framework y Xamarin/Mono.
Basado en el artículo de Paul Krill (InfoWorld) y editado por CIO Perú