Facebook JavaScript Engine (Hermes) booste React Native sur Android
Publié: 2019-11-18L'introduction du nouvel outil JavaScript Facebook pour les appareils Android peut améliorer le temps de démarrage, réduire l'utilisation de la RAM et réduire la taille de l'application. Pour le moment, l'outil est une fonctionnalité opt-in dans React Native. La majorité des produits de la dernière version Android native de Facebook ont commencé à utiliser cet outil JavaScript.
- Plus d'informations sur Facebook pour les appareils Android Moteur JavaScript
- Fonctionnalités du nouveau moteur JavaScript Android
- Comment obtenir Hermès
- Réagir
- La principale décision architecturale du moteur JavaScript de Facebook pour les appareils Android
- 1. Pré-compilation du code d'octet
- 2. Pas de juste à temps
- 3. Technique de collecte des déchets
- Conclusion
Plus d'informations sur Facebook pour les appareils Android Moteur JavaScript
L'outil JavaScript Facebook pour les appareils Android a été créé pour améliorer le fonctionnement des grandes applications Android. Les applications téléphoniques ne cessent d'augmenter en taille, ce qui est très susceptible de poser des problèmes, comme lorsque vous téléchargez l'application Facebook dans des gadgets qui manquent d'espace ou d'une grande capacité de traitement. C'est aussi la principale raison pour laquelle Facebook et d'autres sociétés ont développé des versions Android « allégées » pour leurs applications.
Il est désormais possible pour les créateurs d'applications Android d'améliorer le fonctionnement de n'importe quelle application à l'aide de l'outil JavaScript. Cet outil réduit la taille d'un téléchargement et améliore la fonction de démarrage. C'est ce que la mise à jour Facebook a l'intention de faire pour ses applications utilisant le moteur JavaScript Facebook pour les appareils Android.
L'équipe Facebook a analysé les informations sur les performances et a découvert que l'outil JavaScript Facebook pour les appareils Android était crucial dans la taille des téléchargements et le fonctionnement général du démarrage. Sachant cela, ils ont estimé qu'ils devaient optimiser le fonctionnement normal de JavaScript dans les environnements hautement réprimés des appareils portables. L'environnement de bureau, en revanche, est très bien et la version de bureau de Facebook pour Android fonctionne parfaitement.
L'outil JavaScript Facebook pour les appareils Android aide à améliorer 3 fonctionnalités principales. Ils sont:
- TTI (temps d'interaction) : il s'agit du temps nécessaire pour lancer les applications jusqu'au moment où elles se chargent complètement.
- La taille des téléchargements.
- Utilisation de la mémoire.
Recommandé pour vous : React Native vs Flutter vs PWA : Battle of Trending Mobile App Frameworks.
Fonctionnalités du nouveau moteur JavaScript Android
- Le travail sera effectué au moment de la construction au lieu d'analyser et d'assembler JavaScript sur le gadget pendant qu'une personne attend.
- La compilation anticipée permet des optimisations plus poussées. Des activités similaires peuvent être vues dans un programme et dédupliquées. Les chaînes de code JavaScript seront assemblées de manière bien stockée sans surcharge d'exécution.
- Une petite taille d'APK Android permettant d'installer une application Facebook ou toute autre application sur des appareils avec moins de mémoire.
- Le bytecode peut être mappé par la mémoire et être chargé à partir de la mémoire flash de plus en plus selon les besoins.
- La zone d'adresse virtuelle est attribuée par tranches chaque fois que cela est nécessaire. Cela évite d'avoir à déterminer la taille du tas et minimise également la surcharge.
- Implémentation des standards de JavaScript en utilisant Hermes ciblant ECMAScript2015 qui est aussi appelé ES6. Les fonctionnalités de JavaScript qui ne sont pas souvent appliquées dans les applications React Native ont été supprimées.
Comment obtenir Hermès
Le moteur JavaScript Facebook pour les appareils Android est disponible en téléchargement. Vous ne pouvez pas télécharger depuis Facebook, pour l'instant, il est disponible sur GitHub. Des instructions sur la façon de l'utiliser sont disponibles sur le site React Native.
Réagir
Mais React Native présente quelques inconvénients, c'est pourquoi la plupart des gens ne l'aiment pas. Par exemple : les applications de jeux en ligne et d'autres fonctions d'applications Android nécessitent un code natif, comme lorsqu'elles doivent sauvegarder l'intégration entre la caméra et le capteur. De plus, les développeurs Android ont toujours besoin de concevoir des ponts afin de combler les espaces entre la structure et le code natif. C'est aussi la raison pour laquelle Airbnb a décidé de le quitter.
Mais le moteur JavaScript Facebook pour les appareils Android pourrait être un moyen pour Facebook de donner plus de vie à React Native et de convaincre plus de gens de l'accepter.
Considérant que le moteur JavaScript de Facebook pour les appareils Android se concentre uniquement sur les applications, Facebook a révélé qu'il ne prévoyait pas de l'intégrer à des serveurs ou à des moteurs de recherche.

Le moteur JavaScript Facebook pour les appareils Android est le dernier projet open source de Facebook. Les projets Android plus actuels incluent :
- Pythia: Un cadre pour l'apprentissage en profondeur.
- DLRM : un modèle d'apprentissage en profondeur.
- Spectrum : Un projet destiné à rendre le processus de téléchargement d'images efficace.
Vous aimerez peut-être : Introduction à la programmation : un bref aperçu de Node JS, Laravel, React, Ruby, Vue et Python.
La principale décision architecturale du moteur JavaScript de Facebook pour les appareils Android
Les limitations des gadgets mobiles, par exemple le flash lent et la petite quantité de RAM, ont obligé Facebook à prendre certaines décisions architecturales. Voici les choses qu'ils ont mises en œuvre :
1. Pré-compilation du code d'octet
Pour éviter cela, le moteur JavaScript des appareils Android de l'application Facebook a utilisé le compilateur à l'avance qui s'exécute dans le cadre du processus de création d'applications. Cela se traduit par plus de temps consacré à l'optimisation du bytecode. Cela implique que le code d'octet est petit et plus utile.
L'optimisation de l'ensemble du programme peut avoir lieu. Cela inclut la déduplication des opérations et le compactage de la table de chaînes.
Le code d'octet est construit de manière à ce qu'au cours de l'exécution, il soit mappé en mémoire et interprété sans nécessiter de parcourir l'intégralité du fichier. La mémoire flash améliore la latence sur la plupart des gadgets mobiles de qualité moyenne et médiocre. Ainsi, cela charge le code octet à partir du flash lorsque cela est nécessaire et l'optimisation du code octet pour la taille apporte de grandes améliorations TTI.
De plus, étant donné que la mémoire est mappée uniquement en lecture et prise en charge par un fichier, le système d'exploitation qui n'échange pas peut toujours supprimer ces pages sous la pression de la mémoire. Cela minimisera les processus d'élimination de la mémoire dans les gadgets qui ont moins de mémoire.
Un bytecode compressé est légèrement plus gros qu'un code JavaScript également compressé. Il en est ainsi parce que le code moteur JavaScript Facebook pour les appareils Android est de petite taille. JavaScript Facebook pour le moteur des appareils Android réduit la taille des applications Android.
2. Pas de juste à temps
L'application Facebook pour les appareils Android Le moteur JavaScript n'a pas l'outil JIT, ce qui implique qu'il ne fonctionne pas bien, principalement dans les benchmarks qui reposent sur le processeur. Cette décision était mondiale. Dans l'ensemble, les benchmarks ne représentent pas la charge de travail des applications.
Facebook a même fait divers tests avec des JIT et ils sont convaincus qu'il ne sera jamais facile d'atteindre une vitesse élevée sans aggraver leurs principales métriques. Les JTI doivent d'abord se préparer chaque fois qu'une application est lancée, ce qui rend difficile l'amélioration du TTI, cela peut même nuire au TTI. De plus, JIT contribue à la taille du code natif et à la consommation de mémoire. Cela ruine les principales métriques de Facebook. C'est pourquoi Facebook Android a décidé de l'ignorer et a plutôt prêté attention aux performances de l'interpréteur comme le meilleur compromis pour JavaScript Facebook pour le moteur des appareils Android.
3. Technique de collecte des déchets
Lors des premiers tests Facebook Android, il a été découvert que l'espace d'adressage virtuel peut être limité dans les grandes applications sur les gadgets 32 bits.
Pour réduire la mémoire et l'espace d'adressage virtuel utilisés par le moteur, Facebook a conçu un collecteur de déchets avec les fonctionnalités ci-dessous.
- Allocation à la demande : l'espace d'adressage virtuel est attribué par tranches si nécessaire.
- Non contigu : l'espace d'adressage virtuel doit se trouver dans une plage de mémoire pour éliminer les limites de ressources.
- Déplacement : le déplacement d'objets implique que la mémoire peut être fragmentée tandis que des blocs inutiles sont renvoyés à un système d'exploitation.
Vous aimerez aussi : Angular vs React : quel framework choisir en 2019.
Conclusion
Le projet JavaScript Facebook pour les appareils Android fait partie des nombreux projets sur lesquels travaille l'équipe Facebook. L'équipe est impatiente de créer des méthodes d'analyse de la mémoire et du temps également. Cela permettra aux experts Android d'améliorer facilement leurs applications. Testez JavaScript Facebook pour les moteurs d'appareils Android et découvrez ses fonctions. Partagez vos expériences avec nous et vous pouvez également nous poser des questions si vous en avez.
Cet article est écrit par Thomas Miller. C'est un expert de la technologie Android qui aime informer les gens sur les dernières technologies. Thomas aime aussi l'idée de JavaScript Facebook pour le moteur des appareils Android et l'a utilisé et a aimé son fonctionnement. Il compile également les meilleures critiques d'experts pour le secteur automobile sur autoexpertguides.com.