Facebook JavaScript Engine (Hermes) ускоряет React Native на Android

Опубликовано: 2019-11-18
Facebook создал удивительный движок JavaScript под названием Hermes для улучшения работы приложений React Native на гаджетах Android. Движок Facebook для устройств Android удобен для быстрого запуска, использования компактного байт-кода и предварительной оптимизации.

Внедрение нового инструмента JavaScript Facebook для устройств Android может увеличить время запуска, снизить использование оперативной памяти и привести к уменьшению размера приложения. На данный момент этот инструмент является опциональной функцией в React Native. Большинство продуктов Facebook последней версии Native Android начали использовать этот инструмент JavaScript.

Оглавление показать
  • Подробнее о движке JavaScript для устройств Android на Facebook
  • Возможности нового движка Android JavaScript
  • Как получить Гермеса
    • Реагировать
  • Основное архитектурное решение JavaScript-движка Facebook для Android-устройств
    • 1. Прекомпиляция байт-кода
    • 2. Нет JIT
    • 3. Техника сбора отходов
  • Заключение

Подробнее о движке JavaScript для устройств Android на Facebook

AI-искусственный-интеллект-код-сценарий-дизайн-разработка

Инструмент JavaScript Facebook для устройств Android был создан для улучшения работы больших приложений Android. Приложения для телефонов продолжают увеличиваться в размерах, что может привести к проблемам, например, когда вы загружаете приложение Facebook на гаджеты, которым не хватает места или большой вычислительной мощности. Это также основная причина, по которой Facebook и другие компании разработали «облегченные» версии Android для своих приложений.

Теперь создатели приложений для Android могут улучшить работу любых приложений с помощью инструмента JavaScript. Этот инструмент уменьшает размер загрузки и улучшает функцию запуска. Это то, что обновление Facebook намерено сделать для своих приложений, использующих JavaScript движок Facebook для устройств Android.

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

Инструмент JavaScript Facebook для устройств Android помогает улучшить 3 основные функции. Они есть:

  1. TTI (время взаимодействия): это время, необходимое для запуска приложений до момента их полной загрузки.
  2. Размер загрузок.
  3. Использование памяти.
 Рекомендуется для вас: React Native vs Flutter vs PWA: битва за популярные платформы мобильных приложений.

Возможности нового движка Android JavaScript

маркетинг-разработка-приложений-приложений

  • Работа будет выполняться во время сборки вместо разбора и сборки JavaScript на гаджете, пока человек ждет.
  • Опережающая компиляция позволяет проводить более совершенную оптимизацию. Подобные действия можно увидеть в программе и дедуплицировать. Строки кода JavaScript будут хорошо храниться без накладных расходов во время выполнения.
  • Крошечный размер Android APK позволяет установить приложение Facebook или любое другое приложение на устройства с меньшим объемом памяти.
  • Байт-код может отображаться в памяти и загружаться из флэш-памяти по мере необходимости.
  • Виртуальная адресная область назначается порциями всякий раз, когда это требуется. Это избавляет от необходимости определять размер кучи, а также минимизирует накладные расходы.
  • Внедрение стандартов JavaScript с использованием Hermes, ориентированного на ECMAScript2015, который также известен как ES6. Были удалены функции JavaScript, которые редко применяются в приложениях React Native.
Кроме того, приложение Facebook для устройств Samsung дополнительно открывает исходники для интеграции Hermes с React Native. Это означает, что разработчики Android сразу же смогут использовать Hermes.

Как получить Гермеса

Задайте себе три вопроса, чтобы оценить результаты

Движок JavaScript Facebook для устройств Android доступен для скачивания. Вы не можете скачать с Facebook, пока он доступен на GitHub. Инструкции по его использованию доступны на сайте React Native.

Реагировать

React-JavaScript-библиотека Важно отметить, что механизмы JavaScript Facebook для устройств Android работают только с приложениями Android, разработанными с помощью React Native (структура приложения, созданная Facebook). Основным преимуществом этой структуры является то, что коды работают естественным образом на большинстве платформ.

Но у React Native есть несколько недостатков, поэтому большинству людей он не нравится. Например: приложениям для онлайн-игр и другим функциям Android-приложений нужен собственный код, например, когда им нужно резервировать интеграцию между камерой и датчиком. Кроме того, разработчикам Android всегда необходимо проектировать мосты, чтобы заполнить пробелы между структурой и собственным кодом. Это также стало причиной, по которой Airbnb решила выйти из нее.

Но движок JavaScript Facebook для устройств Android может быть средством Facebook, чтобы вдохнуть больше жизни в React Native и убедить больше людей принять его.

Учитывая, что движок JavaScript Facebook для устройств Android фокусируется только на приложениях, Facebook сообщил, что не планирует интегрировать его с серверами или поисковыми системами.

Движок JavaScript Facebook для устройств Android — новейший проект с открытым исходным кодом от Facebook. Другие текущие проекты Android включают:

  • Pythia: платформа для глубокого обучения.
  • DLRM: модель глубокого обучения.
  • Spectrum: проект, призванный сделать процесс загрузки изображений более эффективным.
 Вам может понравиться: Введение в программирование: краткий обзор Node JS, Laravel, React, Ruby, Vue и Python.

Основное архитектурное решение JavaScript-движка Facebook для Android-устройств

Андроид

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

1. Прекомпиляция байт-кода

Facebook JavaScript Engine ускоряет React Native на Android — пункт 1 JavaScript Движок Facebook для устройств Android автоматически анализирует исходный код JavaScript при загрузке. Это создаст байт-код. Это действие задержит начало выполнения JavaScript

Чтобы избежать этого, движок JavaScript для Android-приложений Facebook использовал опережающий компилятор, который запускается в процессе создания приложения. Это приводит к тому, что больше времени тратится на оптимизацию байт-кода. Это означает, что байтовый код меньше и более полезен.

Можно оптимизировать всю программу. Это включает дедупликацию операций и упаковку таблицы строк.

Байт-код построен таким образом, что во время выполнения он отображается в памяти и интерпретируется без необходимости просмотра всего файла. Флэш-память улучшает латентность на большинстве средних и некачественных мобильных гаджетов. Так что это загружает байт-код из флэш-памяти, когда это необходимо, а оптимизация байт-кода по размеру приносит большие улучшения TTI.

Кроме того, поскольку память отображается только для чтения и поддерживается файлом, ОС, которая не выполняет подкачку, может удалить эти страницы из-за нехватки памяти. Это сведет к минимуму количество процессов, связанных с нехваткой памяти, в гаджетах с меньшим объемом памяти.

Сжатый байт-код немного больше, чем код JavaScript, который также сжат. Это связано с тем, что код движка JavaScript Facebook для устройств Android имеет небольшой размер. Движок JavaScript Facebook для устройств Android уменьшает размер приложений Android.

2. Нет JIT

Facebook JavaScript Engine ускоряет React Native на Android — Пункт 2 Чтобы ускорить выполнение, многие широко используемые движки JavaScript могут плохо компилировать интерпретируемые коды в машинные коды с помощью инструмента JIT (точно в срок).

Приложение Facebook для устройств Android В движке JavaScript нет инструмента JIT, что означает, что он плохо работает в основном в тестах, которые зависят от ЦП. Это решение было глобальным. Тесты в целом не отражают нагрузку на приложения.

Facebook даже проводил различные тесты с JIT, и они убеждены, что никогда не будет легко достичь высокой скорости без ухудшения их основных показателей. JTI должны сначала подготовиться всякий раз, когда запускается приложение, что затрудняет улучшение TTI и даже может повредить TTI. Кроме того, JIT увеличивает размер нативного кода и потребление памяти. Это разрушает основные показатели Facebook. Вот почему Facebook Android решил проигнорировать его и вместо этого обратил внимание на производительность интерпретатора как на лучший компромисс для движка JavaScript Facebook для устройств Android.

3. Техника сбора отходов

Facebook JavaScript Engine ускоряет React Native на Android — пункт 3 Хорошее использование памяти имеет решающее значение в мобильных гаджетах Android. У некачественных гаджетов меньше памяти, смена операционной системы невозможна, а ОС убивает приложения, занимающие много места в памяти. После закрытия приложений требуется медленный перезапуск, что влияет на работу фона.

В ходе первоначальных тестов Facebook Android выяснилось, что виртуальное адресное пространство может быть ограничено в больших приложениях на 32-битных гаджетах.

Чтобы уменьшить объем памяти и виртуальное адресное пространство, используемое движком, Facebook разработал сборщик отходов с перечисленными ниже функциями.

  • Выделение по запросу: виртуальное адресное пространство выделяется по частям, когда это необходимо.
  • Несмежное: виртуальное адресное пространство должно находиться в одном диапазоне памяти, чтобы устранить ограничения ресурсов.
  • Перемещение: перемещение объектов подразумевает, что память может быть фрагментирована, а ненужные куски возвращаются в ОС.
 Вам также может понравиться: Angular vs React: какой фреймворк выбрать в 2019 году.

Заключение

Facebook JavaScript Engine ускоряет React Native на Android — заключение

Проект JavaScript Facebook для устройств Android — один из многих проектов, над которыми работает команда Facebook. Команда с нетерпением ждет создания способов анализа памяти и времени. Это облегчит специалистам по Android усовершенствование своих приложений. Протестируйте движки JavaScript Facebook для устройств Android и ознакомьтесь с его функциями. Поделитесь с нами своим опытом, и вы также можете задать нам вопросы, если они у вас есть.

 Эта статья написана Томасом Миллером. Он эксперт по технологиям Android, который любит информировать людей о новейших технологиях. Томасу также нравится идея движка JavaScript Facebook для устройств Android, и он использовал его, и ему понравилось, как он работает. Он также собирает лучшие экспертные обзоры автомобильной отрасли на сайте autoexpertguides.com.