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: в ядре улучшена поддержка перечисления, например, теперь вы можете сгенерировать строковое значение из каждого значения перечисления с помощью метода «.name», получить значения по имени или сопоставить пары значений.

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

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

Из другие изменения которые выделяются:

  • Дополнительная защита от уязвимости (CVE-2021-22567), вызванной использованием символов Юникода, которые изменяют порядок отображения в коде.
  • Исправлена ​​уязвимость (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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

bool (истина)