Dart 2.15 pojawia się z izolowanymi grupami, ulepszeniami środowiska wykonawczego i nie tylko

Google niedawno zaprezentowało uruchomienie nowa wersja języka programowania Dart 2.15, który kontynuuje rozwój radykalnie przeprojektowanej gałęzi Dart 2 i różni się od oryginalnej wersji języka Dart użyciem silnego statycznego typowania (typy mogą być wywnioskowane automatycznie, więc określanie typów nie jest wymagane, ale dynamiczne typowanie nie jest już używane i jest początkowo obliczane, typ jest przypisany do zmienna, a następnie stosowana jest ścisła kontrola typu).

W nowej wersji wprowadzono różne ulepszenia, a przede wszystkim wprowadzono kilka nowych funkcji, takich jak izolowane grupy, a także rozwiązania niektórych wykrytych luk.

Główne nowe funkcje Darta 2.15

W tej nowej wersji Dart 2.15 dostarczane są narzędzia do szybkiego równoległego wykonywania zadań z izolacją kontrolera.

poza tym w systemach wielordzeniowych środowisko wykonawcze Dart, domyślnie, uruchamia kod aplikacji na rdzeniu procesora i wykorzystuje inne rdzenie do wykonywania zadań systemowych takie jak asynchroniczne we/wy, zapisywanie do plików lub wykonywanie połączeń sieciowych.

Kolejną nowością, którą wprowadza Dart 2.15 jest nowa koncepcja, izolowane grupy, (izoluj grupy) umożliwienie współdzielonego dostępu do różnych wewnętrznych struktur danych w izolatach należących do tej samej grupy, co może znacznie zmniejszyć obciążenie związane z komunikacją z agentami w grupie. Na przykład uruchomienie dodatkowej izolacji w istniejącej puli jest 100 razy szybsze i wymaga od 10 do 100 razy mniej pamięci niż zainicjowanie oddzielnej izolacji, co eliminuje potrzebę inicjowania struktur danych programu.

Pomimo tego, że w izolowanych blokach w grupie, współdzielony dostęp do mutowalnych obiektów jest nadal zabroniony, grupy używają współdzielonej pamięci dynamicznej, znacznie przyspieszając przenoszenie obiektów z jednego bloku do drugiego bez konieczności wykonywania operacji kopiowania wymagających dużej ilości zasobów.

W nowej wersji dozwolone jest również przekazanie wyniku pracy kontrolera, gdy wywoływana jest funkcja Isolate.exit() przekazać dane do głównego bloku izolacji bez wykonywania operacji kopiowania. Ponadto przeprowadzono optymalizację mechanizmu transmisji wiadomości: małe i średnie wiadomości są teraz przetwarzane około 8 razy szybciej. Obiekty, które mogą być przekazywane między izolatami za pomocą wywołania SendPort.send(), obejmują różne typy funkcji, domknięcia i ślady stosu.

W narzędziach do tworzenia wskaźników do poszczególnych funkcji w innych obiektach, usunięto ograniczenia dotyczące tworzenia takich wskaźników w kodzie konstruktora, który może być przydatny przy tworzeniu interfejsów w oparciu o bibliotekę Trzepotanie.

Biblioteka dart: rdzeń poprawił obsługę wyliczenia, na przykład możesz teraz wygenerować wartość ciągu z każdej wartości wyliczenia za pomocą metody „.name”, uzyskać wartości według nazwy lub dopasować pary wartości.

Podkreśla się również, że zaimplementowano technikę kompresji wskaźnikaŻe pozwala na użycie bardziej zwartej reprezentacji wskaźników w środowiskach 64-bitowych czy 32-bitowa przestrzeń adresowa jest wystarczająca do adresowania (nie używa się więcej niż 4 GB pamięci). Testy wykazały, że taka optymalizacja zmniejsza rozmiar sterty o około 10%. W zestawie Flutter SDK nowy tryb jest już domyślnie włączony dla Androida i planuje się, że zostanie włączony dla iOS w przyszłej wersji.

Również należy zauważyć, że repozytorium pub.dev ma teraz możliwość odwołania już opublikowanej wersji pakietu, na przykład w przypadku niebezpiecznych błędów lub luk.

z inne zmiany które wyróżniają się:

  • Dodatkowa ochrona przed podatnością (CVE-2021-22567) spowodowaną użyciem znaków Unicode, które zmieniają kolejność wyświetlania w kodzie.
  • Naprawiono usterkę (CVE-2021-22568), która mogła podszywać się pod innego użytkownika pub.dev podczas publikowania pakietów na serwerze innej firmy, który akceptuje tokeny dostępu oauth2 z pub.dev.
  • Dart SDK zawiera narzędzia do debugowania i analizy wydajności (DevTools), które wcześniej były dostarczane w osobnym pakiecie.
  • Do polecenia „dart pub” i repozytoriów pakietów pub.dev dodano narzędzia służące do śledzenia przypadkowego uwolnienia poufnych informacji, na przykład pozostawienia poświadczeń dla systemów ciągłej integracji i środowisk chmurowych w pakiecie.
  • Jeśli takie przecieki zostaną znalezione, polecenie „dart pub publish” zostanie zatrzymane z komunikatem o błędzie. W przypadku fałszywego alarmu możliwe jest pominięcie kontroli poprzez białą listę.

źródło: https://medium.com/


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.