
Llamanos!!!
+569 55281977

.NET 9.0 ha traído avances significativos en el rendimiento del procesamiento de JSON, consolidando su posición como una plataforma de alto rendimiento. Este artículo explora cómo estas mejoras impactaron a Corvus.JsonSchema, una biblioteca de código abierto especializada en serialización y validación de JSON mediante JSON Schema, desarrollada por endjin.
Un Salto Gratuito con .NET 8.0
Desde su lanzamiento inicial en .NET 7.0, Corvus.JsonSchema ya mostraba un desempeño notable, sustentado por técnicas optimizadas discutidas en conferencias previas por Ian Griffiths. Sin embargo, el cambio a .NET 8.0 proporcionó un incremento del 20% en rendimiento sin necesidad de modificar el código. Esto marcó un precedente para lo que llegaría con .NET 9.0.
Rendimiento con .NET 9.0: Un 32% Más Rápido
Con el lanzamiento de .NET 9.0, se analizaron los puntos de referencia utilizando la última versión de Corvus.JsonSchema (4.0.1). Los resultados mostraron un incremento del 32% en el rendimiento. Este avance se divide en un 20% derivado del entorno de ejecución mejorado y un 13% adicional gracias a la integración de las nuevas APIs de System.Text.Json.
En comparación con la versión inicial en .NET 7.0, esto representa un avance acumulado cercano al 50%. La mejora se debe, en parte, a cambios fundamentales en la generación de código JIT, como la implementación de una única barrera de memoria para copiar estructuras, en lugar de múltiples barreras para cada campo.
Resultados del Benchmark
El análisis se realizó en un procesador Intel Core i7-13800H de 13.ª generación, evaluando la validación de una matriz que contiene 10,000 documentos JSON pequeños, típicos de una carga útil en una API web. Los resultados son los siguientes:
Método | Versión .NET | Tiempo Promedio (ms) | Relación | Asignaciones |
ValidateLargeArray V3 | .NET 7.0 | 17,084 | 1.34 | 13B |
ValidateLargeArray V3 | .NET 8.0 | 12,726 | 1.00 | 1B |
ValidateLargeArray V3 | .NET 9.0 | 10,122 | 0.80 | 17B |
ValidateLargeArray V4 | .NET 9.0 | 8,700 | 0.68 | 17B |
Hacia el Futuro: Lo Que se Espera de .NET 10
Las mejoras no terminan aquí. Con .NET 10 en el horizonte, ya se han aceptado solicitudes de cambios en el repositorio de dotnet/runtime, incluyendo acceso sin procesar a nombres de propiedades JSON. Aunque estas actualizaciones no impactan directamente en el rendimiento actual, sí podrían mejorar la validación de propiedades en esquemas complejos.
Sin embargo, las mejoras interanuales del 20%, aunque significativas, parecen acercarse a un límite de rendimiento, salvo que el equipo detrás del JIT descubra nuevos métodos inesperados para optimizar aún más.
Conclusión
.NET 9.0 no solo incrementó el rendimiento de procesamiento JSON en un 32%, sino que también sentó las bases para futuras mejoras en .NET 10. Estas innovaciones refuerzan la posición de la plataforma como una opción líder para aplicaciones que requieren alto rendimiento en procesamiento de datos JSON, consolidando la confianza de desarrolladores y empresas en su ecosistema.
Para mayor información, visita el artículo oficial en el siguiente enlace: Cómo .NET 9.0 mejoró el rendimiento del esquema JSON en un 32%.