Релиз Erlang/OTP 24.0

Вторник, 18 мая 2021 г.

Следите за нами в ВКонтакте, Facebook'e и Twitter'e

Вышел важный релиз платформы для разработки высоконагруженных и отказоустойчивых систем — Erlang/OTP за номером 24.

Выпуск включает в себя более 1400 коммитов, изменивших около полумиллиона строк. Ключевым нововведением является добавление JIT-компилятора «BeamAsm» в виртуальную машину Erlang’а (BEAM). Попытки реализации данного функционала предпринимались на протяжении ~10 лет и наконец увенчались успехом.

Историю добавления JIT в BEAM можно прочитать в блоге.

Комментарии разработчиков и пользователей о производительности:

Цитата из описания pull-запроса с JIT-функционалом:

Насколько BeamAsm быстрей интерпретатора? Данный показатель в значительной степени зависит от того чем занимается ваше приложение. Например, число estone’ов, в модуле для оценки производительности, возросло на 50%, т.е. теперь, за тоже время выполняется в половину больший объём работы. Разбег в ускорении отдельных тестов варьируется от 170% (сопоставление с образцом) до близкого к нулю (обработка больших сообщений). Большой прирост наблюдается в нагрузке с интенсивными вычислениями, а код с акцентом на обмен сообщениями — практически не ускорился.

Если запустить тесты разборки JSON из комплекта Poison или Jason, наблюдается ускорение от 30 до 130 процентов (в среднем ~70%). В некоторых бенчмарках BeamAsm даже быстрее чем jiffy — json-парсер написанный на Си.

Хосе Валим, создатель языка программирования Elixir, также работающего поверх виртуальной машины BEAM, успел оценить ускорение полученное с добавлением JIT-компиляции:

Одним из многих положительных эффектов JIT оказалось сокращение времени сборки сервера hexpm (включая зависимости) с 111 секунд до 77, что на 31% быстрее. :)

Из подводных камней можно выделить:

Увеличение потребления памяти на 10% в сравнении с интерпретацией без JIT-компиляции.
JIT работает только для x86/x86–64 архитектур, но поддержка ARM64 запланирована.

Замечания по сборке Erlang/OTP 24 из исходников:

Для поддержки JIT-компиляции, сборка должна осуществляться компилятором с поддержкой C++17. Проверить работоспособность можно с помощью вызова: erlang: system_info (emu_flavor). В качестве альтернативы может быть исползован официальный докер-образ.

Другие изменения:

Выполнение EEP 54 (Erlang Enhancement Process), призванного реализовать вывод более человекочитаемых сообщений об ошибках во встроенных функциях. Этот механизм так же может быть использован в библиотеках или приложениях. Пример из твиттера Хосе Валима.
Интерфейсы графических компонентов, например Observer’а, были переписаны на wxWidgets 3.

Поздравляю сообщество разработчиков на BEAM-языках с значительным релизом, призываю обновить Erlang/OTP, для получения бесплатного прироста производительности!

>>> Подробности

Следите за нами в ВКонтакте, Facebook'e и Twitter'e


Просмотров: 418
Рубрика: Hi-Tech


Архив новостей / Экспорт новостей

Ещё новости по теме:

RosInvest.Com не несет ответственности за опубликованные материалы и комментарии пользователей. Возрастной цензор 16+.

Ответственность за высказанные, размещённую информацию и оценки, в рамках проекта RosInvest.Com, лежит полностью на лицах опубликовавших эти материалы. Использование материалов, допускается со ссылкой на сайт RosInvest.Com.

Архивы новостей за: 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003