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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.