Facebook JavaScript Engine (Hermes) usprawnia React Native na Androida

Opublikowany: 2019-11-18
Facebook stworzył niesamowity silnik JavaScript o nazwie Hermes, aby usprawnić działanie aplikacji React Native na gadżetach Androida. Silnik Facebooka dla urządzeń z systemem Android jest dobry do szybkiego uruchamiania, wykorzystując ściśle upakowany kod bajtowy i optymalizację z wyprzedzeniem.

Wprowadzenie nowego narzędzia JavaScript Facebook dla urządzeń z systemem Android może wydłużyć czas uruchamiania, zmniejszyć zużycie pamięci RAM i prowadzić do mniejszego rozmiaru aplikacji. W tej chwili narzędzie jest funkcją dobrowolną w React Native. Większość produktów Facebook Reaguje w najnowszej wersji Native Android, która zaczęła używać tego narzędzia JavaScript.

Spis treści pokaż
  • Więcej informacji o Facebooku na urządzenia z systemem Android Silnik JavaScript
  • Funkcje nowego silnika JavaScript w Androidzie
  • Jak zdobyć Hermesa?
    • Reagować
  • Główna decyzja dotycząca architektury silnika JavaScript Facebook dla urządzeń z systemem Android
    • 1. Wstępna kompilacja kodu bajtowego
    • 2. Brak JIT
    • 3. Technika zbierania odpadów
  • Wniosek

Więcej informacji o Facebooku na urządzenia z systemem Android Silnik JavaScript

AI-sztuczna-inteligencja-kod-skrypt-projekt-opracowanie

Narzędzie JavaScript Facebook na urządzenia z systemem Android zostało stworzone w celu usprawnienia działania dużych aplikacji na Androida. Aplikacje na telefon stale się powiększają, co może powodować problemy, na przykład podczas pobierania aplikacji Facebooka w gadżetach, które nie mają wystarczającej ilości miejsca lub mają duże możliwości przetwarzania. Jest to również główny powód, dla którego Facebook i inne firmy opracowały „lite” wersje Androida dla swoich aplikacji.

Teraz twórcy aplikacji na Androida mogą usprawnić działanie dowolnych aplikacji za pomocą narzędzia JavaScript. To narzędzie zmniejsza rozmiar pobierania i poprawia funkcję uruchamiania. Właśnie to zamierza zrobić aktualizacja Facebooka dla swoich aplikacji wykorzystujących silnik JavaScript Facebook dla urządzeń z systemem Android.

Zespół Facebooka przeanalizował informacje o wydajności i odkrył, że narzędzie JavaScript Facebook dla urządzeń z systemem Android ma kluczowe znaczenie dla wielkości pobrań i ogólnego funkcjonowania uruchamiania. Wiedząc o tym, uznali, że muszą zoptymalizować sposób, w jaki JavaScript normalnie działa w mocno stłumionych środowiskach urządzeń przenośnych. Z drugiej strony środowisko graficzne jest w porządku, a wersja komputerowa Facebooka dla Androida działa doskonale.

Narzędzie JavaScript Facebook dla urządzeń z systemem Android pomaga w ulepszeniu 3 głównych funkcji. Oni są:

  1. TTI (czas na interakcję): Jest to czas potrzebny na uruchomienie aplikacji do momentu ich całkowitego załadowania.
  2. Rozmiar pobrań.
  3. Wykorzystanie pamięci.
 Polecane dla Ciebie: React Native vs Flutter vs PWA: Battle of Trending Mobile App Frameworks.

Funkcje nowego silnika JavaScript w Androidzie

rozwój-marketingu-aplikacji-mobilnej

  • Prace będą wykonywane nad czasem kompilacji zamiast analizowania i łączenia JavaScript w gadżecie, gdy osoba czeka.
  • Kompilacja z wyprzedzeniem umożliwia bardziej zaawansowane optymalizacje. Podobne działania można zobaczyć w programie i usunąć duplikaty. Ciągi kodu JavaScript zostaną ułożone w dobrze przechowywany sposób, bez narzutów w czasie wykonywania.
  • Niewielki rozmiar pakietu APK na Androida umożliwia zainstalowanie aplikacji Facebook lub dowolnej innej aplikacji na urządzeniach z mniejszą ilością pamięci.
  • Kod bajtowy może być mapowany przez pamięć i w miarę potrzeb coraz częściej ładowany z pamięci flash.
  • Obszar adresu wirtualnego jest przypisywany w porcjach, gdy jest to wymagane. Zapobiega to konieczności określenia wielkości hałdy, a także minimalizuje koszty ogólne.
  • Implementacja standardów JavaScript przy użyciu Hermesa ukierunkowanego na ECMAScript2015, który jest również określany jako ES6. Funkcje JavaScript, które nie są często stosowane w aplikacjach React Native, zostały usunięte.
Poza tym aplikacja Facebook na urządzenia Samsung dodatkowo otwiera źródła integracji Hermesa z React Native. Oznacza to, że programiści Androida będą mogli od razu korzystać z Hermesa.

Jak zdobyć Hermesa?

Zadaj sobie trzy pytania, aby ocenić wyniki

Silnik JavaScript Facebook dla urządzeń z systemem Android jest dostępny do pobrania. Nie możesz pobrać z Facebooka, na razie jest dostępny na GitHub. Wskazówki jak z niego korzystać są dostępne na stronie React Native.

Reagować

Biblioteka React-JavaScript Należy zauważyć, że silniki JavaScript Facebook dla urządzeń z systemem Android działają tylko z aplikacjami na Androida, które zostały zaprojektowane w React Native (struktura aplikacji stworzona przez Facebook). Główną zaletą tej struktury jest to, że kody działają w sposób natywny na większości platform.

Ale React Native ma kilka wad, dlatego większość ludzi go nie lubi. Na przykład: aplikacje do gier online i inne funkcje aplikacji na Androida wymagają natywnego kodu, np. gdy muszą wykonać kopię zapasową integracji między kamerą a czujnikiem. Ponadto programiści Androida zawsze muszą projektować mosty, aby zatkać spacje między strukturą a kodem natywnym. To był również powód, dla którego Airbnb zdecydowało się z niego zrezygnować.

Ale silnik JavaScript Facebook dla urządzeń z Androidem może być sposobem Facebooka, aby ożywić React Native i przekonać więcej ludzi do jego zaakceptowania.

Biorąc pod uwagę, że silnik JavaScript Facebook dla urządzeń z Androidem skupia się tylko na aplikacjach, Facebook ujawnił, że nie planuje integrować go z serwerami lub wyszukiwarkami.

Silnik JavaScript Facebook dla urządzeń z systemem Android to najnowszy projekt open-source pochodzący z Facebooka. Inne aktualne projekty Androida obejmują:

  • Pythia: Struktura głębokiego uczenia się.
  • DLRM: model głębokiego uczenia się.
  • Spectrum: Projekt mający na celu usprawnienie procesu przesyłania zdjęć.
 Możesz polubić: Wprowadzenie do programowania: krótki opis Node JS, Laravel, React, Ruby, Vue i Python.

Główna decyzja dotycząca architektury silnika JavaScript Facebook dla urządzeń z systemem Android

Android

Ograniczenia gadżetów mobilnych, takie jak powolny flash i mała ilość pamięci RAM, sprawiły, że Facebook podjął pewne decyzje architektoniczne. Poniżej znajdują się rzeczy, które wdrożyli:

1. Wstępna kompilacja kodu bajtowego

Facebook JavaScript Engine usprawnia React Native na Androida – punkt 1 JavaScript Silnik Facebooka dla urządzeń z systemem Android automatycznie przeanalizuje źródło JavaScript po załadowaniu. Spowoduje to utworzenie kodu bajtowego. Ta czynność opóźni rozpoczęcie wykonywania JavaScript

Aby tego uniknąć, silnik JavaScript dla urządzeń z Androidem na Facebooku wykorzystywał kompilator wyprzedzający, który działa w procesie tworzenia aplikacji. Powoduje to, że poświęca się więcej czasu na optymalizację kodu bajtowego. Oznacza to, że kod bajtowy jest mały i bardziej użyteczny.

Może nastąpić optymalizacja całego programu. Obejmuje to deduplikację operacji i pakowanie tablicy ciągów.

Kod bajtowy jest zbudowany w taki sposób, że w czasie działania zostanie odwzorowany w pamięci i będzie interpretowany bez konieczności przechodzenia przez cały plik. Pamięć flash poprawia opóźnienia w większości gadżetów mobilnych średniej i niskiej jakości. Więc to ładuje kod bajtowy z pamięci flash, gdy jest to konieczne, a optymalizacja kodu bajtowego pod kątem rozmiaru przynosi wspaniałe ulepszenia TTI.

Ponadto, ponieważ pamięć jest mapowana tylko do odczytu i obsługiwana przez plik, system operacyjny, który nie dokonuje wymiany, może nadal usuwać te strony pod obciążeniem pamięci. Zminimalizuje to zabijanie procesów braku pamięci w gadżetach, które mają mniej pamięci.

Skompresowany kod bajtowy jest nieco większy niż kod JavaScript, który jest również skompresowany. Dzieje się tak, ponieważ kod silnika JavaScript Facebook dla urządzeń z systemem Android jest niewielki. Silnik JavaScript Facebook dla urządzeń z systemem Android zmniejsza rozmiar aplikacji na Androida.

2. Brak JIT

Silnik JavaScript Facebooka usprawnia React Native na Androida – punkt 2 Aby przyspieszyć wykonanie, wiele powszechnie używanych silników JavaScript może słabo kompilować zinterpretowane kody do kodów maszynowych za pomocą narzędzia JIT (just in time).

Aplikacja Facebook na urządzenia z systemem Android Silnik JavaScript nie ma narzędzia JIT, co oznacza, że ​​nie działa dobrze, głównie w testach porównawczych, które opierają się na procesorze. Ta decyzja była globalna. Ogólnie rzecz biorąc, testy porównawcze nie odzwierciedlają obciążenia aplikacji.

Facebook przeprowadził nawet różne testy z JITami i są przekonani, że nigdy nie będzie łatwo osiągnąć wysoką prędkość bez pogorszenia ich głównych wskaźników. WIT muszą się najpierw przygotować za każdym razem, gdy uruchamiana jest aplikacja, co utrudnia ulepszanie TTI, a nawet może zaszkodzić TTI. Poza tym JIT przyczynia się do rozmiaru kodu natywnego i zużycia pamięci. To rujnuje główne wskaźniki Facebooka. Dlatego Facebook Android postanowił to zignorować i zamiast tego zwrócił uwagę na wydajność interpretera jako najlepszy kompromis dla silnika JavaScript Facebook dla urządzeń z Androidem.

3. Technika zbierania odpadów

Facebook JavaScript Engine usprawnia React Native na Androida – punkt 3 Dobre wykorzystanie pamięci ma kluczowe znaczenie w gadżetach mobilnych z systemem Android. Gadżety niskiej jakości mają mniej pamięci, zamiana systemów operacyjnych nie jest możliwa, a system operacyjny zabija aplikacje, które zajmują dużo miejsca w pamięci. Po zabiciu aplikacji wymagane jest powolne ponowne uruchamianie i wpływa to na działanie tła.

Podczas wstępnych testów Androida na Facebooku okazało się, że wirtualna przestrzeń adresowa może być ograniczona w dużych aplikacjach na 32-bitowych gadżetach.

Aby zredukować pamięć i wirtualną przestrzeń adresową wykorzystywaną przez silnik, Facebook zaprojektował kolektor odpadów z poniższymi funkcjami.

  • Alokacja na żądanie: Wirtualna przestrzeń adresowa jest przydzielana w porcjach, gdy jest to konieczne.
  • Nieciągły: wirtualna przestrzeń adresowa powinna znajdować się w jednym zakresie pamięci, aby wyeliminować ograniczenia zasobów.
  • Przenoszenie: Przenoszenie obiektów oznacza, że ​​pamięć może ulec fragmentacji, podczas gdy niepotrzebne grudki są przenoszone z powrotem do systemu operacyjnego.
 Możesz także polubić: Angular vs React: który framework wybrać w 2019 roku.

Wniosek

Facebook JavaScript Engine usprawnia React Native na Androida – podsumowanie

Projekt JavaScript Facebook dla urządzeń z systemem Android jest jednym z wielu projektów, nad którymi pracuje zespół Facebooka. Zespół nie może się doczekać również stworzenia sposobów analizy pamięci i czasu. Ułatwi to ekspertom Androida ulepszanie swoich aplikacji. Przetestuj JavaScript Facebook dla silników urządzeń z Androidem i zobacz jego funkcje. Podziel się z nami swoimi doświadczeniami, a jeśli masz jakieś pytania, możesz zadać nam pytania.

 Ten artykuł został napisany przez Thomasa Millera. Jest ekspertem od technologii Androida, który uwielbia informować ludzi o najnowszych technologiach. Thomasowi podoba się również pomysł silnika JavaScript Facebook dla urządzeń z systemem Android i wykorzystał go i polubił jego działanie. Na autoexpertguides.com opracowuje również najlepsze recenzje ekspertów dla sektora motoryzacyjnego.