Facebook startet Hermes, eine Open-Source-JavaScript-Engine zum Ausführen von React Native-Apps auf Android

Facebook-Software-Ingenieur Marc Horowitz stellte Hermes gestern auf der Chain React 2019 Konferenz in Portland, Oregon vor. Hermes ist ein neues Tool für Entwickler, um die App-Startleistung zu verbessern und Apps auf minderwertigen Smartphones effizienter zu machen, wie dies bei Facebooks Apps der Fall ist.

Der Standardvorteil von Hermes besteht darin, dass Entwickler alle drei mobilen Plattformen mit einer einzigen Codebasis ansprechen können. Wie bei jedem plattformübergreifenden Framework gibt es jedoch Unterschiede in Leistung, Sicherheit und Flexibilität. GitHub hat Hermes für alle Entwickler zu verwenden. Er hat auch seinen eigenen Twitter-Account und Login-Seite .

Horowitz betonte, dass Hermes die Apk-Größe um die Hälfte seiner 41 MB reduziert und ein Viertel der Speichernutzung der App entfernt habe.

Mit anderen Worten, mit Hermes können Entwickler Es Benutzern ermöglichen, schneller mit einer App zu interagieren, mit weniger Hindernissen, wie z. B. Einschränkungen bei niedrigen Downloadzeiten und begrenzten Speicherressourcen, insbesondere durch mehrere Apps, die auf Telefonen mit niedriger Qualität gemeinsam genutzt werden.

Und das sind genau die Telefone, die Facebook mit Hermes anvisiert. Im Vergleich zu den hochwertigen Telefonen, die bezahlte Entwickler in der Regel verwenden.

"Als Entwickler neigen wir dazu, die neuesten Flaggschiff-Geräte zu tragen. Die meisten Nutzer auf der Welt sagten "Nein". Häufig verwendete Android-Geräte verfügen über weniger Speicher und weniger Speicher als die neuesten Telefone und viel weniger Speicher als der Desktop. Dies gilt insbesondere außerhalb der Vereinigten Staaten. Der mobile Blitz ist auch relativ langsam und führt zu einer hohen I/O-Latenz. "

Dies ist nicht jeden Tag, dass eine neue JavaScript-Engine geboren wird, aber während es viele solcher Engines in Browsern wie Googles V8 gibt, bemerkt Mozilla, dass SpiderMonkey nicht auf Microsofts Chakra, Horowitz Hermes-Browser oder zum Beispiel auf der Serverseite auf Knoten abzielt.js.

"Wir versuchen nicht, im Browser- oder Serverbereich zu konkurrieren. Hermes könnte theoretisch für Fälle dieser Art von Verwendung sein, was nie unser Ziel war.

Die Aufzeichnungen berichten, dass Facebook keine Pläne hat, Hermes über Nation hinaus zu treiben.js React Native oder es zur Grundlage eines Browsers der Marke Facebook zu machen. Dies liegt daran, dass es für mobile Anwendungen optimiert ist und keine Vorteile gegenüber anderen Engines in anderen Nutzungsszenarien bietet.

Anstatt JavaScript zu installieren und später zu analysieren, versucht Hermes, durch eine Vorkompilierung von Bytecode effizient zu sein. Hermes verwendet die vorgefertigte (AOT)-Kompilierung während des Erstellungsprozesses mobiler Anwendungen, um eine umfassendere Bytecodeoptimierung zu ermöglichen. In ähnlicher Weise ist der Fuchsia Dart Compiler für iOS ein AOT-Compiler.

Es gibt andere Möglichkeiten, um mehr Leistung von JavaScript zu erhalten. Die V8-Engine bietet beispielsweise eine Funktion, die als benutzerdefinierte Snapshots bezeichnet wird. Dies ist jedoch technisch etwas schwieriger als mit Hermes.

Hermes gibt auch den Just-in-Time -Compiler (JIT) auf, der von anderen JavaScript-Engines verwendet wird, um häufig interpretierten Code im Maschinencode zu kompilieren. Im Kontext von React Native tut JIT nicht viel, um mobile App-Workloads zu erleichtern.

Der Grund für die Präsenz von Hermes, wie bei Facebook, ist, Native React besser zu machen. "Hermes ermöglicht mehr Optimierung auf Mobilgeräten, da Entwickler den Build-Stack steuern", teilte ein Facebook-Sprecher The Register per E-Mail mit. "Wir haben beispielsweise eine Vorkompilierung von Bytecode implementiert, um die Leistung zu verbessern, und die Garbage Collection effizienter verbessert, um die Speichernutzung zu reduzieren."

In einem Gespräch mit Hacker News behauptete Microsoft-Entwickler Andrew Coates, dass Hermes intern getestet wurde und einen 21,5 MB Laufzeitspeichereffekt hat, verglichen mit 1,4s für den TTI V8, 1.1sn zeigt auch die Verwendung von Hermes in der Kontinuierlichen mit Microsoft Office für Android Domestic Response im Vergleich zu 30 MB mit diesem V8.

Hermes ist größtenteils mit ES6 JavaScript kompatibel. Es gibt keine Unterstützung für einige Sprachfeatures wie Ausdrücke und native nalen Modus eval (), um das Modul klein zu halten.

Ein Facebook-Sprecher sagte The Register, dass sie in der nächsten Woche Benchmark-Zahlen veröffentlichen wollen, um Leistungsansprüche zu unterstützen.

  Zitat

KARABAY A, 2020 . Facebook startete Hermes, eine Open-Source-JavaScript-Engine zum Ausführen von React Native-Apps auf Android,

https://www.karabayyazilim.com/blog/javascript/react-native/facebook-androidde-react-native-uygulamalarini-calistirmak-icin-acik-kaynakli-bir-javascript-motoru-olan-hermesi-piyasaya-surdu-2020-05-31-185617

(Zugriff am 22. Juli 2019).


  Diesen Beitrag teilen

Kommentare (1)

  • Antwort Mehmet

    Vielen Dank für diese Informationen

    vor 2 Jahren

    Kommentar

    Abonnieren
    Melden Sie sich für den E-Mail-Newsletter an, um als Erster über meine Blogbeiträge Bescheid zu wissen