Go 1.25 se publicó el 12 de agosto de 2025 con tres novedades que merecen atención: un garbage collector experimental llamado Green Tea, el paquete testing/synctest para probar código concurrente, y mejoras de rendimiento en operaciones de punto flotante en AMD64.
Green Tea: un nuevo garbage collector
El GC de Go lleva años siendo uno de sus puntos fuertes, con pausas bajas y un comportamiento predecible. Pero en aplicaciones con mucha concurrencia y muchos objetos de vida corta, hay margen de mejora. Green Tea es el intento del equipo de Go de reducir esas pausas todavÃa más.
Por ahora es experimental y no es el GC por defecto. Para activarlo tienes que usar la variable de entorno GOEXPERIMENT=greenteagc. El equipo quiere recoger datos reales antes de convertirlo en el comportamiento estándar.
Si tienes una aplicación Go que sufre pausas del GC en producción, puede valer la pena probarlo en un entorno de staging y medir. Los primeros benchmarks muestran reducciones notables en las pausas, aunque los resultados varÃan bastante según el patrón de allocations del programa.
testing/synctest para tests concurrentes
Probar código concurrente en Go siempre ha sido incómodo cuando ese código depende del tiempo. Si tienes una goroutine que espera un timeout o un ticker, el test tiene que esperar también, lo que lo hace lento o flaky según cómo esté escrito.
El nuevo paquete testing/synctest resuelve esto con tiempo virtualizado. Dentro de un bloque synctest.Run, el tiempo no avanza solo, sino cuando el test lo indica. Puedes simular que han pasado cinco segundos sin esperar cinco segundos reales. Los tests son más rápidos y dejan de ser no deterministas.
Es una adición pequeña en tamaño pero con un impacto grande en calidad de tests. El código concurrente es difÃcil de testear bien; esta herramienta quita una excusa habitual para no hacerlo.
Rendimiento en AMD64 con instrucciones FMA
Go 1.25 aprovecha las instrucciones FMA (Fused Multiply-Add) disponibles en procesadores AMD64 modernos para acelerar operaciones de aritmética flotante. Si tu programa hace cálculos numéricos intensivos, puedes ver mejoras de rendimiento sin cambiar nada en el código.
Para entender mejor el estado general de Go como lenguaje, puedes leer sobre el estado de Go en 2025. Y si te preguntas cómo se compara Go con Rust en rendimiento, tienes disponible la comparativa entre Go y Rust para proyectos exigentes.
Imagen: Pexels / Lukas Blazek
