Facebook JavaScript Engine (Hermes) ускоряет React Native на Android
Опубликовано: 2019-11-18Внедрение нового инструмента JavaScript Facebook для устройств Android может увеличить время запуска, снизить использование оперативной памяти и привести к уменьшению размера приложения. На данный момент этот инструмент является опциональной функцией в React Native. Большинство продуктов Facebook последней версии Native Android начали использовать этот инструмент JavaScript.
- Подробнее о движке JavaScript для устройств Android на Facebook
- Возможности нового движка Android JavaScript
- Как получить Гермеса
- Реагировать
- Основное архитектурное решение JavaScript-движка Facebook для Android-устройств
- 1. Прекомпиляция байт-кода
- 2. Нет JIT
- 3. Техника сбора отходов
- Заключение
Подробнее о движке JavaScript для устройств Android на Facebook
Инструмент JavaScript Facebook для устройств Android был создан для улучшения работы больших приложений Android. Приложения для телефонов продолжают увеличиваться в размерах, что может привести к проблемам, например, когда вы загружаете приложение Facebook на гаджеты, которым не хватает места или большой вычислительной мощности. Это также основная причина, по которой Facebook и другие компании разработали «облегченные» версии Android для своих приложений.
Теперь создатели приложений для Android могут улучшить работу любых приложений с помощью инструмента JavaScript. Этот инструмент уменьшает размер загрузки и улучшает функцию запуска. Это то, что обновление Facebook намерено сделать для своих приложений, использующих JavaScript движок Facebook для устройств Android.
Команда Facebook проанализировала информацию о производительности и обнаружила, что инструмент JavaScript Facebook для устройств Android имеет решающее значение для размера загрузок и общего функционирования запуска. Зная об этом, они почувствовали, что им необходимо оптимизировать то, как JavaScript обычно работает в сильно подавленных средах портативных устройств. С другой стороны, среда рабочего стола в порядке, а настольная версия Facebook для Android работает превосходно.
Инструмент JavaScript Facebook для устройств Android помогает улучшить 3 основные функции. Они есть:
- TTI (время взаимодействия): это время, необходимое для запуска приложений до момента их полной загрузки.
- Размер загрузок.
- Использование памяти.
Рекомендуется для вас: React Native vs Flutter vs PWA: битва за популярные платформы мобильных приложений.
Возможности нового движка Android JavaScript
- Работа будет выполняться во время сборки вместо разбора и сборки JavaScript на гаджете, пока человек ждет.
- Опережающая компиляция позволяет проводить более совершенную оптимизацию. Подобные действия можно увидеть в программе и дедуплицировать. Строки кода JavaScript будут хорошо храниться без накладных расходов во время выполнения.
- Крошечный размер Android APK позволяет установить приложение Facebook или любое другое приложение на устройства с меньшим объемом памяти.
- Байт-код может отображаться в памяти и загружаться из флэш-памяти по мере необходимости.
- Виртуальная адресная область назначается порциями всякий раз, когда это требуется. Это избавляет от необходимости определять размер кучи, а также минимизирует накладные расходы.
- Внедрение стандартов JavaScript с использованием Hermes, ориентированного на ECMAScript2015, который также известен как ES6. Были удалены функции JavaScript, которые редко применяются в приложениях React Native.
Как получить Гермеса
Движок JavaScript Facebook для устройств Android доступен для скачивания. Вы не можете скачать с Facebook, пока он доступен на GitHub. Инструкции по его использованию доступны на сайте React Native.
Реагировать
Но у 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. Прекомпиляция байт-кода
Чтобы избежать этого, движок JavaScript для Android-приложений Facebook использовал опережающий компилятор, который запускается в процессе создания приложения. Это приводит к тому, что больше времени тратится на оптимизацию байт-кода. Это означает, что байтовый код меньше и более полезен.
Можно оптимизировать всю программу. Это включает дедупликацию операций и упаковку таблицы строк.
Байт-код построен таким образом, что во время выполнения он отображается в памяти и интерпретируется без необходимости просмотра всего файла. Флэш-память улучшает латентность на большинстве средних и некачественных мобильных гаджетов. Так что это загружает байт-код из флэш-памяти, когда это необходимо, а оптимизация байт-кода по размеру приносит большие улучшения TTI.
Кроме того, поскольку память отображается только для чтения и поддерживается файлом, ОС, которая не выполняет подкачку, может удалить эти страницы из-за нехватки памяти. Это сведет к минимуму количество процессов, связанных с нехваткой памяти, в гаджетах с меньшим объемом памяти.
Сжатый байт-код немного больше, чем код JavaScript, который также сжат. Это связано с тем, что код движка JavaScript Facebook для устройств Android имеет небольшой размер. Движок JavaScript Facebook для устройств Android уменьшает размер приложений Android.
2. Нет JIT
Приложение Facebook для устройств Android В движке JavaScript нет инструмента JIT, что означает, что он плохо работает в основном в тестах, которые зависят от ЦП. Это решение было глобальным. Тесты в целом не отражают нагрузку на приложения.
Facebook даже проводил различные тесты с JIT, и они убеждены, что никогда не будет легко достичь высокой скорости без ухудшения их основных показателей. JTI должны сначала подготовиться всякий раз, когда запускается приложение, что затрудняет улучшение TTI и даже может повредить TTI. Кроме того, JIT увеличивает размер нативного кода и потребление памяти. Это разрушает основные показатели Facebook. Вот почему Facebook Android решил проигнорировать его и вместо этого обратил внимание на производительность интерпретатора как на лучший компромисс для движка JavaScript Facebook для устройств Android.
3. Техника сбора отходов
В ходе первоначальных тестов Facebook Android выяснилось, что виртуальное адресное пространство может быть ограничено в больших приложениях на 32-битных гаджетах.
Чтобы уменьшить объем памяти и виртуальное адресное пространство, используемое движком, Facebook разработал сборщик отходов с перечисленными ниже функциями.
- Выделение по запросу: виртуальное адресное пространство выделяется по частям, когда это необходимо.
- Несмежное: виртуальное адресное пространство должно находиться в одном диапазоне памяти, чтобы устранить ограничения ресурсов.
- Перемещение: перемещение объектов подразумевает, что память может быть фрагментирована, а ненужные куски возвращаются в ОС.
Вам также может понравиться: Angular vs React: какой фреймворк выбрать в 2019 году.
Заключение
Проект JavaScript Facebook для устройств Android — один из многих проектов, над которыми работает команда Facebook. Команда с нетерпением ждет создания способов анализа памяти и времени. Это облегчит специалистам по Android усовершенствование своих приложений. Протестируйте движки JavaScript Facebook для устройств Android и ознакомьтесь с его функциями. Поделитесь с нами своим опытом, и вы также можете задать нам вопросы, если они у вас есть.
Эта статья написана Томасом Миллером. Он эксперт по технологиям Android, который любит информировать людей о новейших технологиях. Томасу также нравится идея движка JavaScript Facebook для устройств Android, и он использовал его, и ему понравилось, как он работает. Он также собирает лучшие экспертные обзоры автомобильной отрасли на сайте autoexpertguides.com.