Go 1.19 wurde bereits veröffentlicht und das sind seine Neuigkeiten

Vor kurzem wurde die Veröffentlichung der neuen Version der Programmiersprache «Go 1.19» angekündigt, eine Version, die die vorherige Version verbessert, indem sie verschiedene Verbesserungen und vor allem Fehlerbehebungen hinzufügt.Zu den Neuerungen, die wir hervorheben können, gehören unter anderem Verbesserungen bei der Speicherverwaltung und Sicherheitsverbesserungen.

Für diejenigen, die neu bei Go sind, sollten Sie wissen, dass dies eine Programmiersprache ist, die unter Beteiligung der Community als Hybridlösung entwickelt wird, die die hohe Leistung kompilierter Sprachen mit Vorteilen wie Skriptsprachen wie z die Leichtigkeit des Schreibens von Code, Entwicklung und Schutz vor Fehlern.

Die Syntax von Go basiert auf den üblichen Elementen der C-Sprache. mit einigen Anleihen aus der Python-Sprache. Die Sprache ist ziemlich knapp, aber der Code ist leicht zu lesen und zu verstehen.

Go-Code wird in separate ausführbare Binärdateien kompiliert die nativ ausgeführt werden, ohne eine virtuelle Maschine zu verwenden (Profilerstellung, Debugging und andere Laufzeitfehlerbehebungssubsysteme sind als Laufzeitkomponenten integriert).

Wichtige neue Funktionen von Go 1.19

In dieser neuen Version von Go 1.19, die vorgestellt wird, wird dies hervorgehoben Es wurde daran gearbeitet, die Unterstützung für Funktionen und generische Typen zu verfeinern in der neuesten Version hinzugefügt, mit deren Hilfe der Entwickler Funktionen definieren und verwenden kann, die dazu bestimmt sind, mit mehreren Typen gleichzeitig zu arbeiten, und die Leistungsoptimierung einiger Programme mithilfe von Generika um 20% erhöht wurde.

Eine weitere Änderung, die sich von der neuen Version abhebt, ist die folgende Unterstützung für Links, Listen und einfachere Syntax hinzugefügt um Kopfzeilen in Dokumentkommentaren zu definieren. Das Dienstprogramm gofmt bietet eine Formatierung unter Berücksichtigung der erweiterten Funktionen von Kommentaren in der API-Dokumentation.

Daneben Überarbeitetes Go-Speichermodell zur Anpassung an C, C++, Java, JavaScript, Rust und Swift die keine sequentiell konsistenten atomaren Werte zulassen. Neue Typen wie atomic.Int64 und atomic.Pointer[T] wurden in das sync/atomic-Paket eingeführt, um die Verwendung atomarer Werte zu vereinfachen.

Andererseits wird auch erwähnt, dass Garbage Collector hat jetzt die Möglichkeit, Soft Limits zu definieren, die erzwungen werden, indem die Größe des Heapspeichers begrenzt und der Arbeitsspeicher aggressiver an das System zurückgegeben wird, d. h., der Verbrauch liegt nicht unter allen Bedingungen innerhalb der angegebenen Grenzen. Softlimits können nützlich sein, um Programme zu optimieren, die in Containern mit festem Speicher ausgeführt werden.

Es wird auch hervorgehoben, dass Auf Unix-Systemen werden zusätzliche Dateideskriptoren automatisch aktiviert (durch Erhöhen des RLIMIT_NOFILE-Grenzwerts), um große Änderungsausdrücke auf x86-64- und ARM64-Systemen zu beschleunigen, werden Sprungtabellen verwendet, mit denen große Änderungsausdrücke bis zu 20 % schneller verarbeitet werden können.

Auf riscv64-Systemen wurde die Übergabe von Funktionsargumenten über CPU-Register implementiert, was eine Leistungssteigerung von etwa 10 % ermöglichte.

Von den anderen Änderungen das hebt sich von dieser neuen Version ab:

  • Zahlreiche Leistungsoptimierungen wurden implementiert.
  • Unterstützung für die dynamische Einstellung der Routinenstapelgröße hinzugefügt, um die Größe der kopierten Daten zu reduzieren
  • Experimentelle Unterstützung für Linux-Umgebungen auf Systemen mit Loongson-Prozessoren basierend auf der 64-Bit-LoongArch-Architektur (GOARCH=loong64) hinzugefügt.
  • Das Ändern des Speichermodells hatte keinen Einfluss auf die Kompatibilität mit zuvor geschriebenem Code.
  • Eine neue "unix"-Build-Beschränkung hinzugefügt, die in "go:build"-Zeilen verwendet werden kann, um Unix-ähnliche Systeme (aix, android, darwin, dragonfly, freebsd, hurd, illumos, ios, linux, netbsd, openbsd, solaris ).
  • Um die Sicherheit zu verbessern, ignoriert das Modul os/exec jetzt relative Pfade beim Erweitern der Umgebungsvariablen PATH (zum Beispiel wird beim Ermitteln des Pfads einer ausführbaren Datei nicht mehr das aktuelle Verzeichnis überprüft).

Wenn Sie mehr über diese neue Version erfahren möchten, können Sie die Details unter überprüfen den folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.