IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Go Discussion :

Go 1.7 débarque avec une optimisation de son compilateur


Sujet :

Go

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    8 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2013
    Messages : 8 451
    Points : 197 705
    Points
    197 705
    Par défaut Go 1.7 débarque avec une optimisation de son compilateur
    Go 1.7 débarque avec une optimisation de son compilateur permettant de réduire jusqu'à 35 % l'utilisation du CPU,
    et de plusieurs améliorations dans les bibliothèques

    Six mois après la sortie de la version 1.6, Google a annoncé la disponibilité de la version 1.7 de Go. La plupart des changements qui accompagnent cette mouture sont situés au niveau de la chaîne de compilation, l’environnement d’exécution et les bibliothèques.

    En 2015, suite à une proposition, Keith Rendal de Google a annoncé que l’entreprise comptait traduire le code du compilateur en Go. Pour y parvenir, Google a segmenté ce processus en trois étapes, en commençant par le back end, afin de pouvoir se focaliser sur des portions qui pourront être testées et déployées plus facilement.

    La première étape consiste à convertir le compilateur back end en SSA (Static Single Assignment form, une méthode d'optimisation pour la compilation), ce qui est chose faite avec cette version. Les apports prévus par Google ? Entre autres une meilleure suppression du code mort, une meilleure allocation des registres et de la mémoire. Google estime que le nouveau code back end du compilateur permet de réduire l’utilisation du CPU de l’ordre de 5 à 35 % d’après son benchmark. Toutefois, il faut noter que ce code peut être désactivé en passant -ssa=0 au compilateur.

    Toujours concernant le compilateur, Google indique que le format de métadonnées exportées écrit par le compilateur dans les archives de package a changé: l'ancien format textuel a été remplacé par un format binaire plus compact qui permet d’obtenir de plus petites archives de paquets tout en corrigeant au passage quelques bogues. Ici encore le nouveau format peut être désactivé en passant -newexport=0 au compilateur.

    Les erreurs d'exécution telles que la tentative d'indexation d’un tableau hors limites déclenchent un RUN-TIME PANIC, qui est équivalent à effectuer un appel de la fonction intégrée PANIC avec une valeur de l'interface type runtime.Error. Ce type satisfait l’interface type prédéclarée ERROR. Les valeurs d'erreur exactes qui représentent des conditions d'erreur d'exécution distinctes ne sont pas précisées. Avec Go 1.7, les RUN-TIME PANIC se servent de valeurs qui implémentent à la fois Error et runtime.Error.

    Dans l’environnement d’exécution, Go 1.7 apporte une nouvelle fonction, KeepAlive, qui fournit un mécanisme explicite pour déclarer qu’un objet alloué doit être considéré comme accessible à un moment donné dans un programme, généralement pour retarder l'exécution d'un finaliseur associé.

    La nouvelle fonction CallersFrames traduit des données obtenues depuis Callers en une séquence d'images correspondant à la pile d'appels. Google recommande cette nouvelle API en lieu et place de l'utilisation directe de FuncForPC, étant donné que la séquence d'images peut décrire plus précisément les piles d'appels.

    La nouvelle fonction SetCgoTraceback pour sa part facilite une intégration plus étroite entre l’exécution de code Go et C dans le même processus appelé en utilisant cgo.

    Du côté des bibliothèques, de nombreux changements mineurs ont été opérés. Nous pouvons citer par exemple crypto/tls. L’implémentation de TLS envoie les premiers paquets de données sur chaque connexion à l'aide d’enregistrements de petite taille, augmentant progressivement la taille d’enregistrement maximale TLS. Cette heuristique réduit la quantité de données qui doivent être reçues avant que le premier paquet ne soit déchiffré, ce qui permet d’améliorer la latence de communication sur les réseaux à faible bande passante.

    Jusqu’à Go 1.6, définir le champ DynamicRecordSizingDisabled sur True permettait d’avoir des paquets aussi larges que possible en début de connexion. Cette fois-ci, le client TLS dispose désormais d’un support limité et optionnel pour renégocier la taille des paquets envoyés aux serveurs via le champ Renegociation. Google explique que cela est nécessaire pour de nombreux serveurs Microsoft Azure.

    De plus, les erreurs renvoyées par le package commencent désormais systématiquement par un préfixe “tls :”. Dans les versions précédentes, certaines erreurs se servaient du préfixe “crypto / tls: “, d’autres utilisaient le préfixe “tls: “ et certains n’avaient aucun préfixe du tout.

    Concernant les autres changements, Go 1.7 ajoute de nombreux supports comme celui de macOS 10.12 Sierra, ou l’ajout d’un port expérimental Linux sur z System (linux/s390x), une gamme d’ordinateurs conçue par IBM pour ses mainframes.

    Source : note de version
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre actif

    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Août 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2012
    Messages : 40
    Points : 254
    Points
    254
    Par défaut Erreur de patronyme
    Le patronyme du ggogler est keith randall

Discussions similaires

  1. [XL-2010] Ouvrir fichier Excel avec une partie de son nom
    Par juluseless dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/10/2014, 14h12
  2. Réponses: 17
    Dernier message: 25/06/2010, 15h03
  3. Réponses: 8
    Dernier message: 14/05/2010, 14h33
  4. Recherche d'un repertoire avec une partie de son nom[D7] [XP]
    Par LHT dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 21/08/2009, 16h28
  5. Réponses: 2
    Dernier message: 09/11/2007, 15h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo