Dart 2.15 поставляється з ізольованими групами, покращеннями під час виконання тощо

Нещодавно Google представив запуск нова версія мови програмування Dart 2.15, який продовжує розвиток радикально переробленої гілки Dart 2 і відрізняється від оригінальної версії мови Dart використанням сильної статичної типізації (типи можна визначити автоматично, тому вказувати типи не потрібно, але динамічний введення більше не використовується і спочатку обчислюється, тип призначається змінної, а потім застосовується сувора перевірка типу).

У цій новій версії були реалізовані різноманітні вдосконалення, і, перш за все, введення деяких нових функцій, таких як ізольовані групи, а також рішення деяких виявлених уразливостей.

Основні нові можливості Dart 2.15

У цій новій версії Dart 2.15 передбачені інструменти для швидкого паралельного виконання завдань з ізоляцією контролера.

Крім того в багатоядерних системах час виконання Дарт, за замовчуванням, запускає код програми на ядрі ЦП і використовує інші ядра для виконання системних завдань наприклад, асинхронний ввод-вивод, запис у файли або здійснення мережевих дзвінків.

Ще одна новинка, яку представляє Dart 2.15, - це нова концепція, ізольовані групи, (ізолювати групи) надання спільного доступу до різних внутрішніх структур даних в ізолятах, що належать до однієї групи, що може значно зменшити накладні витрати при спілкуванні з агентами в групі. Наприклад, запуск додаткової ізоляції в існуючому пулі відбувається в 100 разів швидше і вимагає від 10 до 100 разів менше пам’яті, ніж ініціювання окремої ізоляції, що усуває необхідність ініціалізації структур даних програми.

Незважаючи на те, що в ізольованих блоках у групі, спільний доступ до змінюваних об'єктів все ще заборонений, групи використовують спільну динамічну пам'ять, значно прискорюючи передачу об'єктів з одного блоку в інший без необхідності ресурсомістких операцій копіювання.

У новій версії також дозволяється передавати результат роботи контролера при виклику Isolate.exit (). передавати дані в основний блок ізоляції без виконання операцій копіювання. Крім того, проведено оптимізацію механізму передачі повідомлень: дрібні та середні повідомлення тепер обробляються приблизно в 8 разів швидше. Об’єкти, які можна передавати між ізолятами за допомогою виклику SendPort.send (), включають різні типи функцій, замикань і трасування стека.

В інструментах для створення покажчиків до окремих функцій в інших об'єктах, знято обмеження на створення таких покажчиків в коді конструктора, який може бути корисним при створенні інтерфейсів на основі бібліотеки Мерехтіння.

Бібліотека dart: ядро ​​покращило підтримку enum, наприклад, тепер ви можете генерувати рядкове значення з кожного значення перерахування за допомогою методу ".name", отримувати значення за іменем або відповідати парам значень.

Також підкреслюється, що реалізовано техніку стиснення покажчикаЩо дозволяє використовувати більш компактне представлення покажчиків у 64-бітних середовищах якщо 32-розрядного адресного простору достатньо для адресації (використовується не більше 4 ГБ пам’яті). Тести показали, що така оптимізація зменшує розмір купи приблизно на 10%. У Flutter SDK новий режим уже ввімкнено для Android за замовчуванням, і його планується ввімкнути для iOS у майбутньому випуску.

Також зазначається, що репозиторій pub.dev тепер має можливість відкликати вже опубліковану версію пакету, наприклад, у разі небезпечних помилок або вразливостей.

З інші зміни що виділяються:

  • Додатковий захист від уразливості (CVE-2021-22567), спричиненої використанням символів Unicode, які змінюють порядок відображення в коді.
  • Виправлено вразливість (CVE-2021-22568), яка могла видавати себе за іншого користувача pub.dev під час публікації пакетів на сторонньому сервері, який приймає маркери доступу oauth2 від pub.dev.
  • Dart SDK включає інструменти для налагодження та аналізу продуктивності (DevTools), які раніше поставлялися в окремому пакеті.
  • До команди "dart pub" і сховищ пакетів pub.dev були додані інструменти для відстеження випадкового випуску конфіденційної інформації, наприклад, надання облікових даних для систем безперервної інтеграції та хмарних середовищ у пакеті.
  • Якщо такі витоки будуть виявлені, команда "dart pub publish" зупиниться з повідомленням про помилку. У разі помилкової тривоги можна пропустити перевірку за допомогою білого списку.

Фуенте: https://medium.com/


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.