Amélioration des outils
- La fonctionnalité d'optimisation guidée par le profil (PGO) que nous avons annoncée en avant-première dans la version 1.20 est maintenant disponible ! Si un fichier nommé default.pgo est présent dans le répertoire du paquet principal, la commande go l'utilisera pour activer une construction PGO. Nous avons mesuré l'impact de PGO sur un large éventail de programmes Go et avons constaté une amélioration des performances de 2 à 7 %.
- L'outil go prend désormais en charge la compatibilité linguistique ascendante et descendante.
Changements linguistiques
- Nouvelles fonctions intégrées : min, max et clear.
- Plusieurs améliorations de l'inférence de type pour les fonctions génériques. La description de l'inférence de type dans la spécification a été étendue et clarifiée.
- Dans une prochaine version de Go, nous prévoyons de résoudre l'un des problèmes les plus courants de la programmation en Go : la capture des variables de boucle. Go 1.21 est livré avec un aperçu de cette fonctionnalité que vous pouvez activer dans votre code à l'aide d'une variable d'environnement.
Ajouts à la bibliothèque standard
- Nouveau package log/slog pour la journalisation structurée.
- Nouveau package slices pour les opérations courantes sur les tranches de n'importe quel type d'élément. Il inclut des fonctions de tri qui sont généralement plus rapides et plus ergonomiques que le paquet sort.
- Nouveau package maps pour les opérations courantes sur les maps de n'importe quel type de clé ou d'élément.
- Nouveau paquetage cmp avec de nouveaux utilitaires pour comparer des valeurs ordonnées.
Amélioration des performances
En plus de l'amélioration des performances lors de l'activation de PGO :
- Le compilateur Go lui-même a été reconstruit avec l'activation de PGO pour la version 1.21, et en conséquence, il construit des programmes Go de 2 à 4 % plus rapidement, en fonction de l'architecture hôte.
- En raison du réglage du ramasse-miettes, certaines applications peuvent voir une réduction de 40 % de la latence de la queue.
- La collecte de traces avec runtime/trace entraîne maintenant un coût CPU substantiellement plus faible sur amd64 et arm64.
Un nouveau portage vers WASI
Go 1.21 ajoute un portage expérimental pour
WebAssembly System Interface (WASI), Preview 1 (
GOOS=wasip1, GOARCH=wasm).
Pour faciliter l'écriture de code WebAssembly (WASM) plus général, le compilateur supporte également une nouvelle directive pour importer des fonctions depuis l'hôte WASM :
go:wasmimport.
Téléchargez la version RC de Go 1.21 et essayez-la !
Partager