Blog Yazılarım

Facebook, Android'de React Native uygulamalarını çalıştırmak için açık kaynaklı bir JavaScript motoru olan Hermes'i piyasaya sürdü

Dün Facebook , açık kaynak MIT lisansı altında Hermes adında yeni bir JavaScript motoru yayınladı . Facebook'a göre, bu yeni motor, React Native çerçevesi ile oluşturulmuş yerel Android uygulamaları için başlangıç ​​zamanlarını hızlandıracak .

Facebook yazılım mühendisi Marc Horowitz, Hermes'i dün Portland, Oregon'da düzenlenen Chain React 2019 konferansında tanıttı . Hermes, geliştiricilerin, Facebook'un uygulamaları için olduğu gibi uygulama başlatma performansını iyileştirmesi ve düşük kaliteli akıllı telefonlarda uygulamaları daha verimli hale getirmesi için yeni bir araçtır.

Hermes'in varsayılan avantajı, geliştiricilerin üç mobil platformu da tek bir kod tabanı ile hedefleyebilmeleridir; Ancak, herhangi bir çapraz platform çerçevesinde olduğu gibi, performans, güvenlik ve esneklik açısından farklılıklar vardır. Tüm geliştiricilerin kullanması için GitHub'da Hermes bulunmaktadır . Ayrıca kendi Twitter hesabına ve giriş sayfasına da sahip .

Horowitz, Hermes'in APK boyutunu 41 MB'ının yarısına düşürdüğünü ve uygulamanın bellek kullanımının dörtte birini kaldırdığını vurguladı.

Başka bir deyişle, Hermes ile geliştiriciler, kullanıcıların, düşük indirme süreleri ve sınırlı bellek kaynaklarında, özellikle de düşük kaliteli telefonlarda paylaşılan birden fazla uygulamanın neden olduğu kısıtlamalar gibi daha az engelle, bir uygulamayla daha hızlı etkileşimde bulunmalarını sağlayabilir.

Ve bunlar tam da Facebook'un Hermes'le hedeflediği telefonlar. Ücretli geliştiricilerin genelde kullandıkları yüksek kaliteli telefonlara kıyasla.

“Geliştiriciler olarak en son amiral gemisi cihazlarını taşıma eğilimindeyiz. Dünyadaki çoğu kullanıcı yok ”dedi. “Sık kullanılan Android cihazlar, en yeni telefonlardan daha az bellek ve daha az belleğe ve masaüstünden çok daha az belleğe sahip. Bu, özellikle Amerika Birleşik Devletleri dışında geçerlidir. Mobil flaş da nispeten yavaş ve yüksek I / O gecikmesine yol açıyor. ”

Bu yeni bir JavaScript motoru doğar her gün değil, ancak Google'ın V8 gibi tarayıcıların mevcut bol böyle motorlar varken, Mozilla'nın SpiderMonkey'in, Microsoft'un Chakra, Horowitz Hermes tarayıcılar yönelik olmadığını notları veya örneğin nasıl node.js üzerinde sunucu tarafı.

“Tarayıcı alanında veya sunucu alanında rekabet etmeye çalışmıyoruz. Hermes teoride bu tür kullanım vakaları için olabilirdi, bu asla amacımız değildi.

Kayıtlar , Facebook’un Hermes’i Nation.js’e React Native’in ötesine itme ya da Facebook markalı bir tarayıcının temeline çevirme planları olmadığını bildirmektedir . Bunun nedeni mobil uygulamalar için optimize edilmiş olması ve diğer kullanım senaryolarındaki diğer motorlara göre avantajlar sunmamasıdır.

Hermes, JavaScript'i yüklemek ve daha sonra ayrıştırmak yerine, bayt kodu ön derlemesi yoluyla verimli olmaya çalışır. Hermes, daha kapsamlı bayt kodu optimizasyonuna izin vermek için mobil uygulama oluşturma işlemi sırasında önceden yapılmış (AOT) derlemeyi kullanır. Benzer çizgiler boyunca, iOS için Fuchsia Dart derleyicisi bir AOT derleyicisidir.

JavaScript'ten daha fazla performans almanın başka yolları da var. Örneğin V8 motoru, özel anlık görüntüler adı verilen bir yetenek sunar . Ancak, bu teknik olarak Hermes kullanmaktan biraz daha zorlu.

Hermes ayrıca, sıkça yorumlanmış kodu makine kodunda derlemek için diğer JavaScript motorları tarafından kullanılan tam zamanında (JIT) derleyicisini de terk eder. React Native bağlamında, JIT, mobil uygulama iş yüklerini kolaylaştırmak için çok fazla bir şey yapmıyor.

Hermes'in varlığının sebebi, Facebook'ta olduğu gibi, React Native'ı daha iyi hale getirmek. Bir Facebook sözcüsü The Register'e e-posta ile gönderen “Hermes, geliştiriciler yapı yığınını kontrol ettiğinden mobilde daha fazla optimizasyona olanak tanıyor” dedi. “Örneğin, performansı artırmak için bayt kodu ön derlemesini uyguladık ve bellek kullanımını azaltmak için daha verimli çöp toplama geliştirdik.”

Hacker News bir tartışmada, Microsoft geliştiricisi Andrew Coates iddia , Hermes iç test ve ve 21.5MB çalışma zamanı hafıza etkisi olan, TTI V8 için 1.4s ile karşılaştırıldığında, 1,1sn de Hermes kullanarak gösterir Android için Microsoft Office ile birlikte Yerli Tepki o V8 ile 30 MB'a kıyasla.

Hermes çoğunlukla ES6 JavaScript ile uyumludur. Motoru küçük tutmak için ifadeler ve yerel mod eval () gibi bazı dil özellikleri için destek yok .

Facebook sözcüsü, The Register'a, performans iddialarını desteklemek için önümüzdeki hafta benchmark rakamlarını yayınlamayı planladıklarını söyledi.



Bu yazıyı paylaş

Yorumlar (3)

  • Mehmet Yanıtla

    Bu bilgi için teşekkürler

    4 ay önce
  • Sefa Yanıtla

    Keşke çeviri yerine kendiniz yazsaydiniz

    4 ay önce
  • Anon Yanıtla

    Google translate ile çevirene kadar iki cümle yazıp orijinal makaleye yönlendirseniz daha iyiydi.

    4 ay önce

Yorum Yap