Facebook, Hermes JavaScript motorunun kaynak kodunu yayınladı

Hermes

Facebook, hafif Hermes JavaScript motoru için kaynak kodunu açtı, React Native çerçeve tabanlı uygulamaları Android platformunda çalıştırmak için optimize edilmiştir.

Facebook Yazılım Mühendisi Marc Horowitz, Portland, Oregon'daki 2019 Chain React konferansında yeni JavaScript motorunu açıkladı. Hermes, Facebook'un uygulamaları için zaten yaptığı gibi uygulama başlatma performansını iyileştirmeye ve uygulamaları giriş seviyesi akıllı telefonlarda daha etkili hale getirmeye odaklanan yeni bir geliştirici aracıdır.

Hermes hakkında

Hermes desteği, bugünün 0.60.2 sürümünden itibaren React Native'e dahil edilmiştir. Proje, yerel JavaScript uygulamaları için uzun başlatma süreleri ve önemli kaynak tüketimi ile sorunları çözmesiyle tanınır. Kod C ++ ile yazılır ve MIT lisansı altında dağıtılır.

Hermes kullanmanın avantajlarından, uygulamanın başlangıç ​​süresinde bir azalma varhafıza tüketiminde azalma ve uygulama boyutunda azalma.

Uygulamaların hızlanması başlatmak bir bayt kodunda ön derleme kullanılarak elde edilir derleme aşamasında kompakt ve verimli.

Uygulamayı doğrudan çalıştırmak için, projenin bir parçası olarak geliştirilen SemiSpace çöp toplayıcı ile birlikte bir sanal makine kullanılır. V8 ile en uzun olanı, kaynak kodunu ayrıştırma ve anında derleme adımlarıdır.

Hermes motoru, bu aşamaları derleme aşamasına götürür ve uygulamaların optimize edilmiş bayt kodu biçiminde teslim edilmesini sağlar.

JavaScript işleme birkaç aşamaya bölünmüştür. Başlangıçta, kaynak kodu çözümlenir ve ara kod gösterimi (Hermes IR), SSA gösterimine (Statik Benzersiz Atama) dayalı olarak oluşturulur.

Ek olarak, ara gösterim, orijinal programın anlamını korurken birincil ara kodu daha verimli bir ara gösterime dönüştürmek için proaktif statik optimizasyon tekniklerini kullanan optimize edici içinde işlenir.

Son aşamada ise kayıtlı sanal makine için bayt kodu üretilir.

Bir demoda Marc Horowitz, Hermes ile bir React Native uygulamasının Hermes olmadan yüklenen aynı uygulamadan yaklaşık iki saniye daha hızlı tam olarak yüklendi.

Marc Horowitz, Hermes'in APK'nın boyutunu da küçülttüğünden emin oldu React Native'de depolanan bir uygulamanın 41 MB'lık belleğinin ortasına geldi ve uygulamanın bellek kullanımının dörtte birini ortadan kaldırdı.

Diğer bir deyişle, geliştiriciler, Hermes ile, kullanıcıların, yavaş indirme süreleri ve sınırlı bellek kaynaklarını paylaşan birden çok uygulamanın neden olduğu kısıtlamalar gibi daha az engel içeren bir uygulamayla daha hızlı etkileşime girmesini sağlayabilir, örneğin: Özellikle telefon girişinde.

Motor, ECMAScript 2015 JavaScript standardının bir bölümünü destekler (tam desteği nihai hedeftir) ve mevcut React Native uygulamalarının çoğu ile uyumludur. Hermes'te, eval () 'ün yerel dökümünü, ifadeler, yansımalar (Reflect ve Proxy), Intl API API ve RegExp'deki bazı bayraklarla "ile" desteklememeye karar verildi.

React Native uygulamasında Hermes'i etkinleştirmek için, projeye "enableHermes: true" seçeneğini eklemeniz yeterlidir. Hermes'i, komut satırından rastgele JavaScript dosyalarını çalıştırmanıza izin veren CLI arayüz modunda derlemek de mümkündür.

Aynı zamanda, Facebook, Hermes'i yalnızca mobil uygulamalara odaklanarak Node.js ve diğer çözümlere uyarlamayı planlamıyor (JIT yerine AOT derlemek, React Native tabanlı mobil uygulamalar bağlamında daha uygundur).

Microsoft, ön performans testleri gerçekleştirdi ve Hermes'i kullanırken Android için Microsoft Office uygulamasının 1.1 saniyede çalışmaya hazır olduğunu gösterdi.

Başlatıldıktan sonra 21.5 MB RAM tüketir, V8 motorunu kullanırken, başlatma sırasında 1.4 saniye harcanır ve bellek tüketimi 30 MB'dir.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.