Facebook JavaScript Engine (Hermes) mejora React Native en Android

Publicado: 2019-11-18
Facebook ha creado un increíble motor de JavaScript llamado Hermes para mejorar el funcionamiento de las aplicaciones React Native en dispositivos Android. El motor de Facebook para dispositivos Android es bueno para un inicio rápido, aprovechando el código de bytes muy compacto y optimizando con anticipación.

La introducción de la nueva herramienta JavaScript Facebook para dispositivos Android puede mejorar el tiempo de inicio, reducir el uso de RAM y reducir el tamaño de la aplicación. Por el momento, la herramienta es una función opcional en React Native. La mayoría de los productos de la última versión de Facebook React Native Android han comenzado a usar esta herramienta de JavaScript.

Mostrar tabla de contenido
  • Más información sobre el motor JavaScript de Facebook para dispositivos Android
  • Características del nuevo motor JavaScript de Android
  • Como conseguir Hermes
    • Reaccionar
  • La principal decisión arquitectónica del motor JavaScript de Facebook para dispositivos Android
    • 1. Precompilación de código de bytes
    • 2. Sin JIT
    • 3. Técnica de recogida de residuos
  • Conclusión

Más información sobre el motor JavaScript de Facebook para dispositivos Android

IA-inteligencia-artificial-código-script-diseño-desarrollo

La herramienta de JavaScript Facebook para dispositivos Android se creó para mejorar el funcionamiento de las grandes aplicaciones de Android. Las aplicaciones telefónicas siguen aumentando de tamaño, lo que es muy capaz de generar problemas, como cuando descarga la aplicación de Facebook en dispositivos que carecen de suficiente espacio o gran capacidad de procesamiento. Esta es también la razón principal por la que Facebook y otras empresas han desarrollado versiones de Android “lite” para sus aplicaciones.

Ahora es posible que los creadores de aplicaciones de Android mejoren el funcionamiento de cualquier aplicación con la ayuda de la herramienta JavaScript. Esta herramienta reduce el tamaño de una descarga y mejora la función de inicio. Eso es lo que pretende hacer la actualización de Facebook para sus aplicaciones que usan JavaScript Facebook para el motor de dispositivos Android.

El equipo de Facebook analizó la información de rendimiento y descubrió que la herramienta JavaScript de Facebook para dispositivos Android era crucial en el tamaño de las descargas y el funcionamiento general del inicio. Habiendo sabido esto, sintieron que necesitaban optimizar el rendimiento normal de JavaScript en los entornos de dispositivos portátiles altamente reprimidos. El entorno de escritorio, por otro lado, está bien y la versión de escritorio de Facebook para Android funciona de manera excelente.

La herramienta de JavaScript Facebook para dispositivos Android ayuda a mejorar 3 características principales. Ellos son:

  1. TTI (time to interact): este es el tiempo que se tarda en iniciar las aplicaciones hasta el momento en que se cargan por completo.
  2. El tamaño de las descargas.
  3. Utilización de la memoria.
 Recomendado para usted: React Native vs Flutter vs PWA: Battle of Trending Mobile App Frameworks.

Características del nuevo motor JavaScript de Android

aplicación-móvil-aplicación-marketing-desarrollo

  • El trabajo se realizará en tiempo de compilación en lugar de analizar y armar JavaScript en el dispositivo mientras una persona espera.
  • La compilación anticipada a tiempo permite optimizaciones más mejoradas. Actividades similares se pueden ver en un programa y desduplicar. Las cadenas de código de JavaScript se combinarán de una buena manera almacenada sin sobrecarga de tiempo de ejecución.
  • Un tamaño pequeño de APK de Android que permite instalar una aplicación de Facebook o cualquier otra aplicación en dispositivos con menos memoria.
  • El código de bytes puede asignarse a la memoria y cargarse desde la memoria flash cada vez más según sea necesario.
  • El área de direcciones virtuales se asigna en fragmentos siempre que sea necesario. Esto evita la necesidad de determinar el tamaño del montón y también minimiza la sobrecarga.
  • Implementar los estándares de JavaScript utilizando Hermes dirigido a ECMAScript2015, que también se conoce como ES6. Se eliminaron las características de JavaScript que no se aplican a menudo en las aplicaciones React Native.
Además de eso, la aplicación de Facebook para dispositivos Samsung también abre fuentes para la integración de Hermes con React Native. Eso implica que los desarrolladores de Android podrán utilizar Hermes al instante.

Como conseguir Hermes

Hágase tres preguntas para evaluar los resultados

El motor JavaScript de Facebook para dispositivos Android está disponible para su descarga. No se puede descargar desde Facebook, por ahora, está disponible en GitHub. Las pautas sobre cómo usarlo están disponibles en el sitio de React Native.

Reaccionar

React-JavaScript-Library Es importante tener en cuenta que JavaScript Facebook para motores de dispositivos Android solo funciona con aplicaciones de Android que han sido diseñadas con React Native (una estructura de aplicación creada por Facebook). El principal punto de venta de esta estructura es que los códigos se ejecutan de forma nativa en la mayoría de las plataformas.

Pero React Native tiene algunos inconvenientes que explican por qué a la mayoría de la gente no le gusta. Por ejemplo: las aplicaciones de juegos en línea y otras funciones de las aplicaciones de Android necesitan código nativo, como cuando necesitan respaldar la integración entre la cámara y el sensor. Además, los desarrolladores de Android siempre necesitan diseñar puentes para tapar los espacios entre la estructura y el código nativo. Esta fue también la razón por la que Airbnb decidió dejarlo.

Pero JavaScript Facebook para el motor de dispositivos Android podría ser un medio de Facebook para dar más vida a React Native y convencer a más personas para que lo acepten.

Teniendo en cuenta que el motor JavaScript de Facebook para dispositivos Android solo se enfoca en aplicaciones, Facebook reveló que no planean integrarlo con servidores o motores de búsqueda.

JavaScript Facebook para el motor de dispositivos Android es el proyecto de código abierto más reciente que proviene de Facebook. Los proyectos de Android más actuales incluyen:

  • Pythia: un marco para el aprendizaje profundo.
  • DLRM: Un modelo para el aprendizaje profundo.
  • Spectrum: un proyecto destinado a hacer que el proceso de carga de imágenes sea eficiente.
 Te puede interesar: Introducción a la programación: un resumen de Node JS, Laravel, React, Ruby, Vue y Python.

La principal decisión arquitectónica del motor JavaScript de Facebook para dispositivos Android

Androide

Las limitaciones de los dispositivos móviles, por ejemplo, el flash lento y la pequeña cantidad de RAM, hicieron que Facebook tomara algunas decisiones arquitectónicas. A continuación se muestran las cosas que implementaron:

1. Precompilación de código de bytes

El motor JavaScript de Facebook mejora React Native en Android - Punto 1 JavaScript El motor de Facebook para dispositivos Android analizará automáticamente la fuente de JavaScript al cargar. Esto creará un código de bytes. Esta actividad retrasará el comienzo de la ejecución de JavaScript

Para evitar eso, el motor de JavaScript de los dispositivos Android de la aplicación de Facebook utilizó el compilador anticipado que se ejecuta bajo el proceso de creación de la aplicación. Esto da como resultado que se dedique más tiempo a la optimización del código de bytes. Esto implica que el código de bytes es pequeño y más útil.

Se puede optimizar todo el programa. Esto incluye la deduplicación de la operación y el empaquetado de la tabla de cadenas.

El código de bytes está construido de manera que, durante el tiempo de ejecución, se mapeará en la memoria y se interpretará sin necesidad de revisar todo el archivo. La memoria flash mejora la latencia en la mayoría de los dispositivos móviles de calidad media y baja. Así que esto carga el código de bytes del flash cuando es necesario y la optimización del tamaño del código de bytes trae grandes mejoras de TTI.

Además, dado que la memoria se asigna solo para lectura y es compatible con un archivo, el sistema operativo que no se intercambia aún puede eliminar esas páginas bajo presión de memoria. Esto minimizará las muertes por falta de memoria en los dispositivos que tienen menos memoria.

Un código de bytes que está comprimido es un poco más grande que un código JavaScript que también está comprimido. Esto se debe a que el código del motor de JavaScript Facebook para dispositivos Android es de tamaño pequeño. JavaScript Facebook para el motor de dispositivos Android reduce el tamaño de las aplicaciones de Android.

2. Sin JIT

El motor de JavaScript de Facebook mejora React Native en Android - Punto 2 Para hacer que la ejecución sea más rápida, muchos motores de JavaScript de uso común pueden compilar mal los códigos interpretados en códigos de máquina utilizando la herramienta JIT (justo a tiempo).

La aplicación de Facebook para dispositivos Android El motor de JavaScript no tiene la herramienta JIT, lo que implica que no funciona bien principalmente en los puntos de referencia que dependen de la CPU. Esa decisión fue global. Los puntos de referencia en general no representan la carga de trabajo de las aplicaciones.

Facebook incluso hizo varias pruebas con JIT y están convencidos de que nunca será fácil alcanzar una alta velocidad sin empeorar sus principales métricas. Los JTI deben prepararse primero cada vez que se inicia una aplicación, lo que dificulta mejorar TTI, incluso puede dañar el TTI. Además de eso, JIT contribuye al tamaño del código nativo y al consumo de memoria. Esto arruina las principales métricas de Facebook. Esta es la razón por la que Facebook Android decidió ignorarlo y, en cambio, prestó atención al rendimiento del intérprete como la mejor compensación para JavaScript Facebook para el motor de dispositivos Android.

3. Técnica de recogida de residuos

El motor de JavaScript de Facebook mejora React Native en Android - Punto 3 El buen uso de la memoria es crucial en los dispositivos móviles con Android. Los dispositivos de baja calidad tienen menos memoria, el intercambio de sistemas operativos no es posible y el sistema operativo elimina las aplicaciones que utilizan mucho espacio de memoria. Al eliminar las aplicaciones, se necesita un reinicio lento y el funcionamiento del fondo se ve afectado.

Durante las pruebas iniciales de Android de Facebook, se descubrió que el espacio de direcciones virtuales puede estar limitado en aplicaciones grandes en dispositivos de 32 bits.

Para reducir la memoria y el espacio de direcciones virtuales utilizado por el motor, Facebook diseñó un recolector de residuos con las siguientes funciones.

  • Asignación a pedido: el espacio de direcciones virtuales se asigna en fragmentos cuando es necesario.
  • No contiguo: el espacio de direcciones virtuales debe estar en un rango de memoria para eliminar los límites de recursos.
  • Mover: mover objetos implica que la memoria puede fragmentarse mientras que los bultos innecesarios se devuelven a un sistema operativo.
 También te puede interesar: Angular vs React: qué marco elegir en 2019.

Conclusión

Facebook JavaScript Engine impulsa React Native en Android - conclusión

El proyecto JavaScript de Facebook para dispositivos Android es uno de los muchos proyectos en los que está trabajando el equipo de Facebook. El equipo también espera crear formas de analizar la memoria y el tiempo. Esto facilitará que los expertos en Android mejoren sus aplicaciones. Pruebe JavaScript Facebook para motores de dispositivos Android y vea sus funciones. Comparta sus experiencias con nosotros y también puede hacernos preguntas si tiene alguna.

 Este artículo está escrito por Thomas Miller. Es un experto en tecnología Android al que le encanta informar a la gente sobre las últimas tecnologías. A Thomas también le encanta la idea de JavaScript Facebook para el motor de dispositivos Android y lo ha usado y le gustó cómo funciona. También recopila las mejores opiniones de expertos del sector de la automoción en autoexpertguides.com.