Facebook выпустил исходный код движка Hermes JavaScript

Гермес

Facebook открыл исходный код легкого движка Hermes JavaScript, оптимизирован для запуска приложений на основе React Native framework на платформе Android.

Разработчик программного обеспечения Facebook Марк Хоровиц представил новый движок JavaScript на конференции Chain React 2019 в Портленде, штат Орегон.. Hermes - это новый инструмент для разработчиков, который фокусируется на улучшении производительности запуска приложений так же, как Facebook уже делает для своих приложений, и на повышении эффективности приложений на смартфонах начального уровня.

О Гермесе

Поддержка Hermes встроена в React Native, начиная с сегодняшней версии 0.60.2. Этот проект известен тем, что решает проблемы с длительным временем запуска нативных приложений JavaScript и значительным потреблением ресурсов. Код написан на C ++ и распространяется по лицензии MIT.

Из плюсов использования Гермеса - сокращение времени запуска приложения., уменьшение потребления памяти и уменьшение размера приложения.

Ускорение приложений запускать достигается с помощью предварительной компиляции в байт-коде компактный и эффективный на этапе компиляции.

Для непосредственного запуска приложения используется виртуальная машина со сборщиком мусора SemiSpace, разработанным как часть проекта. В V8 самые длинные этапы - это анализ исходного кода и его компиляция на лету.

Механизм Hermes переводит эти этапы на этап компиляции и позволяет доставлять приложения в виде оптимизированного байтового кода.

Обработка JavaScript делится на несколько этапов. Первоначально исходный код анализируется и создается промежуточное представление кода (Hermes IR) на основе представления SSA (статическое уникальное присвоение).

Кроме того, промежуточное представление обрабатывается в оптимизаторе, который использует методы упреждающей статической оптимизации для преобразования первичного промежуточного кода в более эффективное промежуточное представление с сохранением семантики исходной программы.

Наконец, на последнем этапе создается байт-код для зарегистрированной виртуальной машины.

В демонстрации Марк Горовиц показал, что приложение React Native с Hermes оно было полностью загружено примерно на две секунды быстрее, чем то же приложение, загруженное без Hermes.

Марк Горовиц позаботился о том, чтобы Гермес также уменьшил размер APK. до середины 41 МБ сохраненного приложения React Native и устранило четверть использования памяти приложением.

Другими словами, с помощью Hermes разработчики могут заставить пользователей быстрее взаимодействовать с приложением с меньшим количеством препятствий, таких как медленное время загрузки и ограничения, вызванные несколькими приложениями, совместно использующими ограниченные ресурсы памяти, например: Особенно на уровне ввода с телефона.

Движок поддерживает часть стандарта JavaScript ECMAScript 2015 (конечной целью является его полная поддержка) и совместим с большинством существующих приложений React Native. В Hermes было решено не поддерживать локальное приведение eval (), выражения «with», отражения (Reflect и Proxy), API Intl API и некоторые флаги в RegExp.

Чтобы включить Hermes в приложении React Native, просто добавьте в проект параметр «enableHermes: true». Также можно скомпилировать Hermes в режиме интерфейса CLI, который позволяет выполнять произвольные файлы JavaScript из командной строки.

Al mismo tiempo, Facebook не планирует адаптировать Hermes для Node.js и других решений, сосредоточившись только на мобильных приложениях. (компиляция AOT вместо JIT более оптимальна в контексте мобильных приложений на основе React Native).

Компания Microsoft провела предварительные тесты производительности и показала, что при использовании Hermes приложение Microsoft Office для Android доступно для работы за 1.1 секунды.

После запуска он потребляет 21.5 МБ ОЗУ, при использовании двигателя V8 на запуск затрачивается 1.4 секунды, а потребление памяти составляет 30 МБ.


Будьте первым, чтобы комментировать

Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.