Dart 2.15 kommt mit isolierten Gruppen, Laufzeitverbesserungen und mehr an

Google hat kürzlich die Einführung des neue Version der Programmiersprache Dart 2.15, das die Entwicklung eines radikal überarbeiteten Zweigs von Dart 2 fortsetzt und die sich von der Originalversion der Dart-Sprache durch die Verwendung einer starken statischen Typisierung unterscheidet (Typen können automatisch abgeleitet werden, daher ist es nicht erforderlich, Typen anzugeben, aber dynamische Typisierung wird nicht mehr verwendet und zunächst berechnet, der Typ wird zugewiesen auf die Variable und dann wird eine strenge Typprüfung durchgeführt).

In dieser neuen Version wurden verschiedene Verbesserungen implementiert und vor allem die Einführung einiger neuer Funktionen wie isolierte Gruppen und auch Lösungen für einige erkannte Schwachstellen.

Die wichtigsten neuen Funktionen von Dart 2.15

In dieser neuen Version von Dart 2.15 Es werden Werkzeuge für die schnelle parallele Ausführung von Aufgaben mit Controller-Isolation bereitgestellt.

Außerdem in Mehrkernsystemen ist die Laufzeit Dart, standardmäßig führt Anwendungscode auf einem CPU-Kern aus und verwendet andere Kerne, um Systemaufgaben auszuführen B. asynchrone E/A, Schreiben in Dateien oder Tätigen von Netzwerkaufrufen.

Eine weitere Neuheit, die Dart 2.15 einführt, ist ein neues Konzept, isolierte Gruppen, (Gruppen isolieren) gemeinsamen Zugriff auf verschiedene interne Datenstrukturen ermöglichen in Isolaten, die derselben Gruppe angehören, was den Overhead bei der Kommunikation mit Agenten in einer Gruppe deutlich reduzieren kann. Das Starten einer zusätzlichen Isolation für einen vorhandenen Pool ist beispielsweise 100-mal schneller und erfordert 10- bis 100-mal weniger Speicher als das Initiieren einer separaten Isolation, wodurch die Initialisierung der Datenstrukturen des Programms entfällt.

Trotz der Tatsache, dass in isolierten Blöcken in einer Gruppe, Der gemeinsame Zugriff auf veränderliche Objekte ist weiterhin verboten, Gruppen verwenden gemeinsam genutzten dynamischen Speicher, wodurch die Übertragung von Objekten von einem Block zum anderen erheblich beschleunigt wird, ohne dass ressourcenintensive Kopiervorgänge erforderlich sind.

In der neuen Version es ist auch erlaubt, das Ergebnis der Controller-Arbeit zu übergeben, wenn Isolate.exit() aufgerufen wird um Daten an den Hauptisolationsblock zu übergeben, ohne Kopiervorgänge durchzuführen. Außerdem wurde der Mechanismus der Nachrichtenübertragung optimiert: Kleine und mittlere Nachrichten werden jetzt etwa 8-mal schneller verarbeitet. Zu den Objekten, die mit dem Aufruf von SendPort.send() zwischen Isolaten übergeben werden können, gehören verschiedene Arten von Funktionen, Closures und Stack-Traces.

In den Tools zum Erstellen von Zeigern auf einzelne Funktionen in anderen Objekten, Einschränkungen beim Erstellen solcher Zeiger wurden entfernt im Konstruktorcode, der kann bei der Erstellung bibliotheksbasierter Schnittstellen nützlich sein Flattern.

Die Bibliothek dart: Kern hat verbesserte Enum-Unterstützung,- Beispielsweise können Sie jetzt mit der Methode ".name" aus jedem Aufzählungswert einen Zeichenfolgenwert generieren, Werte nach Namen abrufen oder Wertepaare abgleichen.

Es wird auch hervorgehoben, dass eine Pointer-Kompressionstechnik wurde implementiertDass ermöglicht eine kompaktere Darstellung von Zeigern in 64-Bit-Umgebungen wenn der 32-Bit-Adressraum für die Adressierung ausreicht (es werden nicht mehr als 4 GB Speicher verwendet). Tests haben gezeigt, dass eine solche Optimierung die Heap-Größe um ungefähr 10 % reduziert. Im Flutter SDK ist der neue Modus bereits standardmäßig für Android aktiviert und soll in einer zukünftigen Version für iOS aktiviert werden.

Auch, Es wird darauf hingewiesen, dass das pub.dev-Repository jetzt die Möglichkeit hat, eine bereits veröffentlichte Version zu widerrufen eines Pakets, zum Beispiel bei gefährlichen Fehlern oder Sicherheitslücken.

Der andere Änderungen das fällt auf:

  • Zusätzlicher Schutz gegen Sicherheitslücke (CVE-2021-22567), die durch die Verwendung von Unicode-Zeichen verursacht wird, die die Anzeigereihenfolge im Code ändern.
  • Es wurde eine Schwachstelle (CVE-2021-22568) behoben, die beim Veröffentlichen von Paketen auf einem Drittanbieterserver, der oauth2-Zugriffstoken von pub.dev akzeptiert, die Identität eines anderen pub.dev-Benutzers annehmen konnte.
  • Das Dart SDK enthält Tools zum Debuggen und zur Leistungsanalyse (DevTools), die zuvor in einem separaten Paket geliefert wurden.
  • Dem Befehl "dart pub" und den Paket-Repositorys pub.dev wurden Tools hinzugefügt, um die versehentliche Freigabe sensibler Informationen zu verfolgen, beispielsweise das Hinterlassen von Anmeldeinformationen für Continuous Integration-Systeme und Cloud-Umgebungen im Paket.
  • Wenn solche Lecks gefunden werden, wird der Befehl "dart pub publish" mit einer Fehlermeldung beendet. Bei einem Fehlalarm kann die Prüfung über die Whitelist übersprungen werden.

Quelle: https://medium.com/


Hinterlasse einen Kommentar

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

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  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.