Open Source im professionellen Einsatz

Go 1.7 mit Compiler-Updates

16.08.2016

Go 1.7 bringt einige signifikante Änderungen mit. Dazu gehören Verbesserungen am Compiler-Backend und -Frontend, die Integration des Context-Paketes sowie Support für hierarchische Tests und Benchmarks.

273

Go-Programme profitieren laut dem Release Announcement von Verbesserungen am Garbage Collector und Optimierungen der Standard Library und laufen etwas schneller. Programme mit vielen untätigen Goroutines legen deutlich kürzere Garbage-Collection-Pausen ein, als noch in Go 1.6. Zudem führt Go 1.7 Subtest und Sub-Benchmarks ein, für die Entwickler nicht jeweils separate Funktionen definieren müssen.

Ein neues Compiler-Backend, das die Static Single-assignment Form (SSA) unterstützt, wurde im Laufe des vergangenen Jahres entwickelt. Laut den Messungen des Projekts laufen dank ihm Benchmarks 5 bis 35 Prozent schneller ab. Das neue Backend produziere zudem kompakteren und effizienteren Code, der zugleich einige Optimierungen mitbringt, etwa Bounds-check und Subexpression Elimination. Bislang läuft das neue Backend nur auf x86-64-Architekturen.

Auch das Frontend des Compilers arbeitet dank eines kompakteren Exportdaten-Formats zügiger und auch, weil Prozesse Deklarationen effizienter importieren. Die weitgehend unsichtbaren Änderungen verkürzen nicht nur die Kompilierzeit merklich, sondern reduzieren die Größe von Binärdateien um 20 bis 30 Prozent.

Das "golang.org/x/net/context"-Paket hat sich in den vergangenen Jahren in vielen Situationen als essenziell herausgestellt, etwa beim Einsatz von Applikationen, die mit Networking, Infrastruktur und Microservices zu tun haben (etwa Kubernetes, Docker). Die Go-Entwickler tragen diesem Umstand nun Rechnung und haben "contexts" in die Standard Library integriert. Die Pakete "net", "net/http" und "os/exec" unterstützen Kontexte, mehr Details verrät ein Blogpost.

Neben weiteren Verbesserungen und Reparaturen ist der mit Go 1.5 eingeführte Support für ein Vendor-Verzeichnis nun fester Bestandteil von Go 1.7 und muss nicht extra aktiviert werden. Wer Go 1.7 herunterladen möchte, findet den Quellcode auf der Projektseite.

Ähnliche Artikel

  • Go 1.8 mit Compiler-Backend für alle Architekturen

    Die Entwickler der Programmiersprache Go stellen in der neuen Version das beim Vorgänger getestete Compiler-Backend nun für alle Architekturen zur Verfügung.

  • D-Compiler unter freier Lizenz

    Der maßgebliche Kopf hinter der Programmiersprache D, Walter Bright, hat den DMD-Referenzcompiler unter eine freie Lizenz gestellt, das Compiler-Backend inbegriffen.

  • Geschwindigkeitsrausch

    Jede neue GCC-Version verspricht schnelleren und besseren Code zu generieren. Mit der Ende April veröffentlichten Version 3.4.0 soll die Compiler-Suite auch das Kompilieren schneller erledigen. Das Linux-Magazin hat nachgemessen und mit Intels ICC verglichen.

  • LLVM-Compiler 2.8 mit ISO-Standards

    In Version 2.8 implementiert das LLVM-Compiler-Framework die ISO-1998- und -2003-Standards für C++.

  • Schneller parallel?

    Mit der Integration des OpenMP-Standards vereinfacht der GNU-Compiler ab Version 4.2 die Parallelprogrammierung in C, C++ und Fortran. Neue Optimierungen sollen übersetzte Programme beschleunigen. Ob der Plan aufgeht, verraten die Benchmarks.

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.