Facebook оприлюднив вихідний код механізму Hermes JavaScript

Hermes

Facebook відкрив вихідний код для легкого механізму Hermes JavaScript, оптимізовано для запуску програм на базі React Native на платформі 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 разом із Гермесом він був повністю завантажений приблизно на дві секунди швидше, ніж той самий додаток, завантажений без Гермеса.

Марк Горовіц подбав про те, щоб Гермес також зменшив розмір APK до середини React Native зберігала 41 Мб програми і виключала чверть використання пам'яті програми.

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

Механізм підтримує частину стандарту JavaScript ECMAScript 2015 (його повна підтримка є кінцевою метою) і сумісний з більшістю існуючих програм React Native. У Hermes було вирішено не підтримувати локальний кастинг eval (), "with" виразів, відображень (Reflect та Proxy), API API Intl та деяких прапорів у RegExp.

Щоб увімкнути Hermes у програмі React Native, просто додайте опцію "enableHermes: true" до проекту. Також можливо скомпілювати Hermes у режимі інтерфейсу CLI, що дозволяє виконувати довільні файли JavaScript із командного рядка.

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