Go 1.21 lanzado oficialmente

Go 1.21 ha sido lanzado oficialmente .

La mayoría de los cambios en esta versión se centran en las implementaciones de la cadena de herramientas, el tiempo de ejecución y la biblioteca. Como de costumbre, esta versión mantiene la promesa de compatibilidad con Go 1; de hecho, Go 1.21 mejora esa promesa. El equipo de desarrollo espera que casi todos los programas de Go continúen compilando y ejecutándose como antes.

Además, Go 1.21 introduce un pequeño cambio en la numeración de versiones.

Go 1.N se ha utilizado en el pasado para referirse a versiones completas del idioma Go y series de lanzamiento, así como al primer lanzamiento de la serie. Comenzando con Go 1.21, el primer lanzamiento ahora es Go 1.N.0 . La última versión es el lenguaje Go 1.21 y su implementación inicial, la versión Go 1.21.0.

Herramientas como  go version esta mostrarán el número de versión como " go1.21.0". Consulte " Versiones de Go " en la documentación de "Cadenas de herramientas de Go" para obtener detalles sobre los nuevos números de versión.

Dirección de descarga: https://go.dev/dl/


Cadena de herramientas mejorada

  • La función Profile Guided Optimization (PGO) es oficialmente GA .

La función Habilitar optimización guiada por perfil (PGO) que estaba en versión preliminar en 1.20 ahora es oficialmente GA. Si hay default.pgoun archivo con nombre en el directorio del paquete principal, goel comando lo usará para habilitar las compilaciones de PGO.

La optimización guiada por perfiles (PGO) es una técnica de optimización del compilador en la programación de computadoras, que se traduce en optimización guiada por archivos de configuración.

PGO también se conoce como:

  • Comentarios dirigidos al perfil (PDF)

  • Optimización dirigida por retroalimentación (FDO)

Su principio es que el compilador utiliza la información de perfil de tiempo de ejecución del programa para generar código de mayor calidad, mejorando así el rendimiento del programa.

Como técnica general de optimización del compilador, PGO no se limita a un determinado lenguaje. Por ejemplo,  el compilador Rust también está explorando el uso de PGO y Microsoft usa LTO+PGO para optimizar el kernel de Linux .

En Go, la propuesta original para PGO proponía agregar soporte para Profile-Guided Optimization (PGO) a la cadena de herramientas Go GC, de modo que la cadena de herramientas pudiera realizar optimizaciones específicas de aplicaciones y cargas de trabajo basadas en información de tiempo de ejecución.

El equipo de desarrollo de Go probó el impacto de PGO en varios programas de Go y encontró mejoras de rendimiento del 2 al 7 % .

Consulte la documentación de PGO para obtener más detalles .

cambio de idioma

  • Se agregaron nuevas funciones integradas: min, max  y  clear
  • Se realizaron varias mejoras en la inferencia de tipos para funciones genéricas, incluida la ampliación y aclaración de la descripción de la inferencia de tipos en la especificación.
  • En versiones futuras, el equipo de desarrollo planea abordar uno de los problemas más comunes en la programación de Go: la captura de variables de bucle . Go 1.21 viene con una vista previa de esta función, que ahora se puede habilitar en el código usando una variable de entorno.
    Haga clic aquí para ver los detalles

Agregar nueva biblioteca estándar

  • paquete log/slog: para registro estructurado

  • paquete de cortes: agregado para operaciones comunes en cortes de cualquier tipo de elemento, este paquete es más rápido y más ergonómico que el paquete de clasificación

  • paquete de mapas: para operaciones comunes en cualquier tipo de clave-valor

  • paquete cmp: para comparar valores ordenados

optimizar el rendimiento

Además de las mejoras de rendimiento cuando PGO está habilitado:

  • El compilador de Go se reconstruyó en 1.21 con PGO habilitado, por lo que crea programas de Go entre un 2 y un 4 % más rápido, según la arquitectura del host.
  • La latencia de cola puede reducirse hasta en un 40 % para algunas aplicaciones debido al ajuste del recolector de elementos no utilizados
  • La recopilación de seguimientos con runtime/trace ahora   implica una sobrecarga de CPU mucho menor en amd64 y arm64

Soporte para WASI

Go 1.21 tiene soporte experimental para  WebAssembly System Interface (WASI) , Vista previa 1 ( GOOS=wasip1, GOARCH=wasm).

Para facilitar la escritura de código WebAssembly (WASM) más general, el compilador también admite una nueva directiva para importar funciones desde el host WASM:  go:wasmimport .

Consulte las notas de la versión para obtener más información .

Otras lecturas

Supongo que te gusta

Origin www.oschina.net/news/252970/go-1-21-released
Recomendado
Clasificación