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
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023