Go 1.1 findet Race Conditions

14.05.2013

Die eben erschienene Version 1.1 der Programmiersprache Go bringt einige Verbesserungen hinsichtlich Performance und Zuverlässigkeit.

Andrew Gerrand, einer der Kernentwickler der Programmiersprache Go, hat im Go-Blog das eben erschienene Go-Release 1.1 vorgestellt. Es beschert Go-Programmierern eine ganze Reihe kleiner Verbesserungen, die aber die Rückwärtskompatibilität nicht gefährden, die mit der Go-Sprachspezifikation 1 garantiert ist. Neu ist beispielsweise das Detail, dass der Go-Compiler eine Division durch 0 bereits bei der Übersetzung erkennt und meldet. Bisher wurden Go-Programme, die einen solchen Fehler enthielten, übersetzt und stürzten dann bei der Ausführung ab.

Interessanter ist ein neu eingeführter Check für Race Conditions, die entstehen, wenn mehrere Threads (so genannte "Goroutines") auf gemeinsame Daten zugreifen. Ein mit demzugehörigen  Schalter kompiliertes Programm überwacht solche Zugriffe und meldet Probleme dem Programmierer. Solcherart instrumentierte Programme laufen bis zu 20 Mal langsamer und verbrauchen bis zu zehn Mal soviel Speicher als ihre ungeschützten Pendants.

Für produktive Code-Produktion wurde der Go-Compiler so verbessert, dass mit ihm erzeugte Programme bis zu 40 Prozent schneller laufen. Dazu haben die Entwickler beispielsweise Teile des Garbage Collectors parallelisiert und die Map-Datenstruktur neu implementiert. Außerdem erzeugt der Compiler nun mehr Inline-Code.

Alle Änderungen finden sich in den Go 1.1 Release Notes.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Setup eines Kubernetes-Clusters mit Kops

Vor allem für Testinstallationen von Kubernetes gibt es einige Lösungen wie Kubeadm und Minikube. Für das Setup eines Kubernetes-Clusters in Cloud-Umgebungen hat sich Kops als Mittel der Wahl bewährt. Wir beschreiben seine Fähigkeiten und geben eine Anleitung für den praktischen Einsatz. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Container

Wie setzen Sie Container ein?

  • Gar nicht
  • Docker standalone
  • Docker mit Kubernetes
  • Docker mit Swarm
  • Docker mit anderem Management
  • LXC/LXD
  • Rocket
  • CRI-O auf Kubernetes
  • Container auf vSphere
  • Andere (siehe Kommentare auf der Ergebnisseite)

Google+

Ausgabe /2018

Microsite