Go 1.20 apporte l'optimisation guidée par profil

Par:
fredericmazue

ven, 03/02/2023 - 15:23

Google vient de publier une nouvelle version de son langage maison : Go 1.20. Il est à remarquer que, comme vous nous l'avions annoncé, Go 1.20 est la dernière version qui fonctionnera sur n'importe quelle version de Windows 7, 8, Server 2008 et Server 2012. Go 1.21 nécessitera au moins Windows 10 ou Server 2016. Go 1.20 est la dernière version qui fonctionnera sur macOS 10.13 High Sierra ou 10.14 Mojave. Go 1.21 nécessitera macOS 10.15 Catalina ou une version ultérieure. A remarquer encore, Go 1.20 ajoute un support expérimental pour FreeBSD sur RISC-V.

Outre quelques évolutions du langage, la nouveauté la plus intéressante apportée par Go 1.20 ce situe au niveau du compilateur. En effet, celui-ci est maintenant doté d'une prise en charge, en préversion pour le moment, de l'optimisation guidée par profil (PGO, pour profile-guided optimization) Cette fonctionnalité permet au compilateur d'effectuer des optimisations spécifiques à l'application et à la charge de travail en fonction des informations de profil d'exécution. Notamment, via PGO, le compilateur effectue un inlining de fonction plus agressif. D'après Google, ce seul inlining de PGO améliore les performances à l'exécution de 3 à 4%. Google prévoit d'ajouter d'autres optimisations guidées par le profil dans les versions à venir du langage.

PGO est doté d'un guide d'utilisation accessible ici. Google souligne que PGO étant en préversion, il convient de l'utiliser avec la prudence appropriée.