Open Source im professionellen Einsatz

Go 1.4 erschienen

11.12.2014

Für die Version 1.4 von Go haben sich die Entwickler der Programmiersprache vor allem um Implementierungsarbeit gekümmert. Sie konnten das "Hot-Split"-Problem lösen und den Heap verkleinern.

249

Nachwuchs gibt es bei den unterstützten Architekturen und Betriebssystemen: Go baut nun Binaries für ARM-Prozessoren mit Android, der Port ist noch im Experimentierstadium. Auch der Native-Client-Support erstreckt sich nun auf ARM. Nicht zuletzt läuft Go nun auf Plan 9 für AMD64.

Die Runtime für Go ist seit Version 1.4 nicht mehr in C mit Assembler-Support geschrieben, sondern in Go. Als Konsequenz kann der Garbage Collector nun die Programmstacks in der Runtime scannen und erfährt so, welche Variablen und Pointer aktiv sind. Version 1.5 soll zudem konkurrierende Garbage-Kollektoren erlauben. In Vorbereitung dessen finden Schreibzugriffe auf Pointer-Werte auf dem Heap bereits über einen Funktionsaufruf, die Write Barrier, statt und nicht mehr direkt über die Funktion, die den Wert selbst aktualisiert.

Alles in allem machen die Neuerungen den Heap kleiner, weil er keine Nicht-Pointer mehr am Leben erhalten muss. Insgesamt schrumpft der Heap daher um 10 bis 30 Prozent gegenüber der Vorversion.

Als einzige Änderung an der Sprache selbst erlaubt Go 1.4 nun Loops der Form:

for range x {
    ...
}

Sie kommen zum Einsatz, wenn es nur um die Iterationen selbst geht.

Da Stacks nicht mehr segmentiert sind, verschwindet zugleich das "Hot-Split"-Problem. Das bezeichnet den starken Kommunikations-Overhead der beim häufigen Allozieren und Befreien neuer Stacks entsteht. Kleinere Stacks können ab Version 1.4 starten, ohne Performance-Probleme zu verursachen, die Startgröße für den Goroutine Stack wurde von 8192 auf 2048 Byte reduziert.

Weitere Änderungen in Go finden sich in den Release Notes, die Entwicklung findet seit neuem auf Github statt.

Ähnliche Artikel

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.