Programmiersprache: Go 1.15 optimiert den Linker

Das aktuelle Release von Go bringt vor allem Verbesserungen in der Toolchain und ein paar Laufzeitoptimierungen mit.

In Pocket speichern vorlesen Druckansicht 9 Kommentare lesen
Programmiersprache: Go 1.15 optimiert den Linker
Lesezeit: 3 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Google hat Version 1.15 der Programmiersprache Go veröffentlicht. Die Neuerungen zielen vor allem auf die Toolchain, allen voran dem Linker. Änderungen an der Programmiersprache selbst gibt es diesmal keine, aber die Core Library hat ein paar Anpassungen an Bord.

Während das vorherige Release vor allem Optimierungen des Compilers im Fokus hatte, hat sich das Go-Team für Version 1.15 auf den Linker konzentriert, also jenen Teil der Toolchain, der die zuvor kompilierten Module zum ausführbaren Programm kombiniert. Dazu hat es das Format für die Object-Dateien umgestaltet und die parallelen Prozesse beim Linken optimiert.

Die Object Files sind zwar etwas größer als in Go 1.14, der Linker soll dafür aber sowohl weniger Speicher benötigen als auch performanter sein. Die Release Notes sprechen von repräsentativen Messungen über umfangreiche Go-Programme, die durchschnittlich einen Geschwindigkeitsgewinn von 20 Prozent und einen reduzierten Speicherbedarf von 30 Prozent beim Link-Vorgang ergeben haben. Die Angaben beziehen sich auf ELF-basierte (Executable and Linking Format) Systeme wie Linux, FreeBSD und Solaris auf AMD64-Architekturen. Auf anderen Systemen fallen die Optimierungen weniger stark ins Gewicht.

Die Core Library von Go enthält mit time/tzdata ein neues Paket, mit dem sich die Zeitzonen-Datenbank in Programme einbinden lässt. Anwendungen können damit die Informationen auch auf Systemen abrufen, auf denen sie nicht lokal verfügbar sind. Durch das Einbinden der Datenbank nimmt die Größe der Programme um etwa 800 Kilobyte zu.

Erwähnenswert ist noch, dass Go nicht mehr das CommonName-Feld von X.509-Zertifikaten als Hostname verwendet, wenn kein Subject Alternative Name (SAN) vorhanden ist. Das Verwenden von Common Name gilt bereits seit 2000 als überholt (deprecated), und Chrome blockt solche Zertifikate seit 2017. Zumindest noch im aktuellen Release können Go-Entwicklerinnen und -Entwickler die Deprecation umgehen, indem sie die Umgebungsvariable GODEBUG auf x509ignoreCN=0 setzen.

2009 hat Google die Programmiersprache Go erstmals der Öffentlichkeit vorgestellt und sie als Alternative zu C positioniert. 2015 befreite sich das Projekt von den letzten C-Überbleibseln im Code und besitzt seitdem eine komplett in Go geschriebene Toolchain und Laufzeitumgebung. Die Programmiersprache unterstützt Nebenläufigkeit und entstand vor allem mit Blick auf verteilte Cloud- und Serveranwendungen. Zu den Vorzeigeprojekten gehören Kubernetes, Istio und Docker.

Weitere Neuerungen und Verbesserungen in Go 1.15 lassen sich der Ankündigung im Go-Blog entnehmen. Eine umfangreiche Liste findet sich in den Release Notes.

(rme)