Google Entregó la versión de producción de Go 1.20, su lenguaje de código abierto Maison reconocido por su simplicidad, competencia y características de programación funcional. Esta actualización proporciona optimización guiada por el perfil (optimización guiada por perfil, PGO, también llamada optimización de directores de retroalimentación) para el compilador, es decir, la posibilidad de que la cadena de herramientas del compilador realice optimizaciones específicas para la aplicación y la carga de trabajo de acuerdo con Los datos del perfil de ejecución.
Actualmente, el compilador admite los perfiles de CPU PPROF, que se pueden recopilar a través de los paquetes Tiempo de ejecución/pprof O net/http/pprof. La optimización guiada por el perfil es devolver la información (un perfil) de las ejecuciones representativas de la aplicación al compilador para la próxima versión de la aplicación, que utiliza esta información para tomar decisiones de optimización más informadas. Los puntos de referencia de un conjunto representativo de programas GO muestran que la activación de la OPTIMIZACIÓN de PGO en la optimización mejora el rendimiento en alrededor de 3 a 4 %. Se planean otras optimizaciones de PGO para las próximas versiones.
Cambios en el lenguaje de chirrido
GO 1.20 también presenta cuatro cambios en el lenguaje. En primer lugar, una mejora realizada en la versión GO 1.17 de 2021, la posibilidad de convertir una porción en un puntero de tabla, se ha extendido para permitir conversiones de rebanada en la mesa (cruel) ,, De acuerdo con las notas de la versión provisional. Entonces el paquete Inseguro Define tres nuevas funciones: Cortes, CadenaY Tangidos. Estas funciones ofrecen la posibilidad completa de construir y deconstruir valores de rebanada y cadena sin depender de la representación exacta.
Tercera contribución: la especificación ahora define que los valores estructura Se comparan un campo al mismo tiempo, considerando los campos en el orden en que aparecen en la definición del tipo estructura Y detenerse en la primera discrepancia. Finalmente; Los tipos comparables como interfaces ordinarias ahora pueden cumplir con restricciones comparables, incluso si los argumentos de tipo no son estrictamente comparables. Esto permite la instanciación de un parámetro de tipo forzado por comparable a un argumento de tipo no estrictamente comparable, como un tipo de interfaz, o un tipo compuesto que contiene un tipo de interfaz.
Varias mejoras
- Se admite la recopilación de perfiles de cobertura de código para programas, incluidas las aplicaciones y las pruebas de integración, en oposición solo a las pruebas unitarias;
- El repertorio $ GORIOT/PKG Ya no almacena actividades de paquete precompiladas para la biblioteca estándar. De ahora en adelante, los paquetes de la biblioteca se construyen según sea necesario y caché en el caché de la construcción. Esto reduce el tamaño de la distribución de GO y evita el desequilibrio de la cadena de herramientas C para paquetes que se usan CGO;
- La implementación de GO Test -Json se ha mejorado para ser más robusto. Programas que se ejecutan GO Test -Json no necesito actualizaciones;
- orden ir Ahora define las balizas de construcción de las características de arquitectura;
- orden ir Deshabilitar ahora COGO Por defecto, los sistemas no tienen una cadena de herramientas C;
- orden Versión GO -M ahora admite leer una mayor cantidad de tipos binarios de GO, incluida la DLL de Windows construida con Go Build- BuildMode = C Shared y binarios de Linux sin permiso de ejecución;
- Se ha agregado un soporte experimental para FreeBSD en RISC-V.
Anunciado el 1 de febrero, ir 1.20 se puede descargar en Go.dev. Esta iteración será la última versión en operar bajo MacOS 10.13 High Sierra o 10.14 Mojave. GO 1.21 requerirá MacOS 10.15 Catalina o una versión posterior. La versión anterior de Go 1.19, que mejoró los genéricos y el modelo de memoria, se publicó el 2 de agosto.
Otras noticias que te pueden interesar