Programmiersprache: Das ändert sich in Go 1.20
Am 1. Februar ist Go in der Version 1.20 erschienen. Wir geben eine Übersicht über die wichtigsten Neuerungen.

Das Go-Team hält den selbst gesetzten Zeitplan mit halbjährlichen Releases ein und hat den Release Candidate 3 für Go 1.20 veröffentlicht. Bis zum geplanten Release im Februar sind noch ein paar Tage Zeit, um sich die Änderungsliste anzusehen. Wir informieren über die interessantesten Neuerungen.
Unterstützung für Profile Guided Optimization
- Programmiersprache: Das ändert sich in Go 1.20
- Laufzeit-Überprüfung von comparable Constraints
- Kleine Änderungen
Der Go-Compiler unterstützt jetzt Profile Guided Optimization (PGO). Diese ist besonders für Server- und andere langlaufende Projekte interessant. Wird dem Compiler ein pprof-CPU-Profil zur Verfügung gestellt, werden die Stellen des Codes besonders gut optimiert, die häufig genutzt werden. Das Go-Team erwartet je nach Projekt eine um 3 bis 4 Prozent bessere Performance. Das mag zunächst bescheiden klingen, allerdings gibt es die Optimierung quasi gratis, wenn zur Performancemessung sowieso CPU-Profile angelegt werden.
Um ein Profil zu erstellen, wird das Programm entweder direkt über pprof gestartet oder bei einem langlaufenden Server per net/http/pprof-Paket eingebunden. Letztgenannte Methode bietet sich an, um Server zu überwachen. Der Profiler ist nur aktiv, wenn ein Client die Daten abfragt. Die entsprechende HTTP-Route sollte jedoch abgesichert werden und nicht im Internet abrufbar sein.
Beispiel für das direkte Anlegen eines CPU-Profils:
import "runtime/pprof" [...] profile, err := os.Create("profile.pgo") if err != nil { log.Fatalln(err) } defer profile.Close() if err := pprof.StartCPUProfile(profile); err != nil { log.Fatalln(err) } defer pprof.StopCPUProfile()
Anschließend lässt sich das Profil mit dem -pgo flag zur Optimierung verwenden: go build . -pgo="profile.pgo"
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Laufzeit-Überprüfung von comparable Constraints |
Wenn der Anwendungsfall ein einfacher ETL-Prozess ist, wo Daten von Bib A an Bib B...
Kommentieren