Facebook JavaScript Motoru (Hermes), Android'de React Native'i Artırıyor
Yayınlanan: 2019-11-18Android cihazlar için yeni JavaScript Facebook aracının tanıtılması, başlatma süresini artırabilir, RAM kullanımını azaltabilir ve daha küçük uygulama boyutuna yol açabilir. Şu anda araç, React Native'de isteğe bağlı bir özelliktir. Facebook'un çoğunluğu, Native Android'in en son sürüm ürünlerine tepki gösteriyor, bu JavaScript aracını kullanmaya başladı.
- Android cihazlar için Facebook JavaScript motoru hakkında daha fazla bilgi
- Yeni Android JavaScript motorunun özellikleri
- Hermes nasıl edinilir
- Tepki
- Android cihazlar için Facebook JavaScript motorunun ana mimari kararı
- 1. Bayt kodu ön derlemesi
- 2. JIT yok
- 3. Atık toplama tekniği
- Çözüm
Android cihazlar için Facebook JavaScript motoru hakkında daha fazla bilgi

Android cihazlar için JavaScript Facebook aracı, büyük Android uygulamalarının işleyişini geliştirmek için oluşturuldu. Telefon uygulamalarının boyutu artmaya devam ediyor ve bu, örneğin Facebook uygulamasını yeterli alana veya mükemmel işleme kapasitesine sahip olmayan gadget'lara indirdiğinizde olduğu gibi, sorunlara yol açabilecek kapasitede. Facebook ve diğer şirketlerin uygulamaları için “lite” Android sürümleri geliştirmelerinin de ana nedeni budur.
Artık Android uygulama yaratıcılarının JavaScript aracının yardımıyla herhangi bir uygulamanın işleyişini geliştirmesi mümkün. Bu araç, bir indirmenin boyutunu küçültür ve başlatma işlevini geliştirir. Facebook güncellemesinin, JavaScript Facebook for Android cihazlar motorunu kullanan uygulamaları için yapmayı amaçladığı şey budur.
Facebook ekibi performans bilgilerini analiz etti ve Android cihazlar için JavaScript Facebook aracının indirme boyutu ve genel başlatma işlevi açısından çok önemli olduğunu keşfetti. Bunu bildiklerinden, JavaScript'in yüksek düzeyde baskı altında olan taşınabilir aygıt ortamlarında normal olarak nasıl performans gösterdiğini optimize etme ihtiyacı hissettiler. Masaüstü ortamı ise gayet iyi ve android için Facebook masaüstü sürümü mükemmel çalışıyor.
Android cihazlar için JavaScript Facebook aracı, 3 ana özelliğin geliştirilmesine yardımcı olur. Bunlar:
- TTI (etkileşim zamanı): Bu, uygulamaların tamamen yüklendikleri ana kadar başlatılması için geçen süredir.
- İndirilenlerin boyutu.
- Bellek kullanımı.
Sizin için önerilir: React Native vs Flutter vs PWA: Battle of Trending Mobile App Frameworks.
Yeni Android JavaScript motorunun özellikleri

- Bir kişi beklerken gadget'ta JavaScript'i ayrıştırmak ve bir araya getirmek yerine derleme zamanında çalışma yapılacaktır.
- Önceden zamanında derleme, daha gelişmiş optimizasyonlara izin verir. Benzer faaliyetler bir programda görülebilir ve tekrarlanabilir. JavaScript kod dizeleri, çalışma zamanı yükü olmadan iyi saklanmış bir şekilde bir araya getirilecektir.
- Daha az belleğe sahip cihazlara bir Facebook uygulaması veya diğer uygulamaları yüklemeyi mümkün kılan küçük bir Android APK boyutu.
- Bayt kodu, bellek tarafından eşlenebilir ve gerektiğinde flash bellekten giderek daha fazla yüklenebilir.
- Sanal adres alanı, gerektiğinde parçalar halinde atanır. Bu, yığının boyutunu belirleme ihtiyacını ortadan kaldırır ve ayrıca yükü en aza indirir.
- ES6 olarak da adlandırılan ECMAScript2015'i hedefleyen Hermes kullanarak JavaScript standartlarını uygulamak. JavaScript'in React Native uygulamalarında pek uygulanmayan özellikleri kaldırıldı.
Hermes nasıl edinilir

Android cihazlar için JavaScript Facebook motoru indirilebilir. Facebook'tan indiremezsiniz, şimdilik GitHub'da mevcuttur. Nasıl kullanılacağına dair yönergeler React Native sitesinde mevcuttur.
Tepki

Ancak React Native'in birkaç dezavantajı vardır, bu yüzden çoğu insan bundan hoşlanmaz. Örneğin: Çevrimiçi oyun uygulamaları ve diğer Android uygulamaları işlevleri, kamera ve sensör arasındaki entegrasyonu yedeklemeleri gerektiğinde olduğu gibi yerel koda ihtiyaç duyar. Ayrıca, Android geliştiricilerinin yapı ile yerel kod arasındaki boşlukları doldurmak için her zaman köprüler tasarlaması gerekir. Airbnb'nin bunu bırakmaya karar vermesinin nedeni de buydu.
Ancak Android cihazlar için JavaScript Facebook motoru, React Native'e daha fazla hayat vermek ve daha fazla insanı onu kabul etmeye ikna etmek için Facebook'un bir aracı olabilir.
Android cihazlar için JavaScript Facebook motorunun yalnızca uygulamalara odaklandığını göz önünde bulunduran Facebook, onu sunucular veya arama motorları ile entegre etmeyi planlamadıklarını açıkladı.

Android cihazlar için JavaScript Facebook motoru, Facebook'tan gelen en yeni açık kaynaklı projedir. Daha güncel Android projeleri şunları içerir:
- Pythia: Derin öğrenme için bir çerçeve.
- DLRM: Derin öğrenme için bir model.
- Spektrum: Resim yükleme sürecini verimli hale getirmeyi amaçlayan bir proje.
Şunları beğenebilirsiniz: Programlamaya Giriş: Node JS, Laravel, React, Ruby, Vue ve Python'un Özeti.
Android cihazlar için Facebook JavaScript motorunun ana mimari kararı

Yavaş flaş ve küçük RAM miktarı gibi mobil cihazların sınırlamaları, Facebook'un bazı mimari kararlar almasına neden oldu. Uyguladıkları şeyler aşağıdadır:
1. Bayt kodu ön derlemesi

Bunu önlemek için, Facebook uygulaması android cihazları JavaScript motoru, uygulama oluşturma sürecinde çalışan önceden derleyiciyi kullandı. Bu, bayt kodu optimizasyonunda daha fazla zaman harcanmasına neden olur. Bu, bayt kodunun küçük ve daha kullanışlı olduğu anlamına gelir.
Tüm programın optimize edilmesi gerçekleşebilir. Bu, işlemin tekilleştirilmesini ve dize tablosunun paketlenmesini içerir.
Bayt kodu, çalışma zamanı sırasında bellekte eşlenecek ve tüm dosyanın üzerinden geçilmesi gerekmeden yorumlanacak şekilde oluşturulmuştur. Flash bellek, çoğu orta ve düşük kaliteli mobil aygıtta gecikmeyi iyileştirir. Dolayısıyla bu, gerektiğinde flaştan bayt kodunu yükler ve boyut için bayt kodunun optimizasyonu, harika TTI geliştirmeleri sağlar.
Ek olarak, bellek eşlendiğinden, yalnızca bir dosya tarafından okunur ve desteklenir, takas etmeyen işletim sistemi yine de bellek baskısı altında bu sayfaları kaldırabilir. Bu, daha az belleğe sahip cihazlarda bellek yetersiz işlem öldürmelerini en aza indirecektir.
Sıkıştırılmış bir bayt kodu, yine sıkıştırılmış bir JavaScript kodundan biraz daha büyüktür. Bunun nedeni, Android cihazlar için JavaScript Facebook motor kodunun küçük olmasıdır. Android cihazlar için JavaScript Facebook motoru, Android uygulamalarının boyutunu küçültür.
2. JIT yok

Android cihazlar için Facebook uygulaması JavaScript motoru, JIT aracına sahip değil, bu da çoğunlukla CPU'ya dayanan kıyaslamalarda iyi performans göstermediğini ima ediyor. Bu karar küreseldi. Genel olarak kıyaslamalar, uygulamaların iş yükünü temsil etmez.
Facebook, JIT'lerle çeşitli testler bile yaptı ve ana ölçümlerini kötüleştirmeden yüksek hıza ulaşmanın asla kolay olmayacağına ikna oldular. JTI'lar, TTI'yi geliştirmeyi zorlaştıran bir uygulama başlatıldığında ilk önce hazırlanmak zorundadır, hatta TTI'ya zarar verebilir. Bunun yanı sıra JIT, yerel kodun boyutuna ve bellek tüketimine katkıda bulunur. Bu, Facebook'un ana ölçümlerini bozar. Bu nedenle Facebook Android bunu görmezden gelmeye karar verdi ve bunun yerine JavaScript Facebook for Android cihazlar motoru için en iyi değiş tokuş olarak yorumlayıcının performansına dikkat etti.
3. Atık toplama tekniği

İlk Facebook Android testleri sırasında, 32 bit gadget'lardaki büyük uygulamalarda sanal adres alanının sınırlı olabileceği tespit edildi.
Facebook, motorun kullandığı belleği ve sanal adres alanını azaltmak için aşağıdaki özelliklere sahip bir atık toplayıcı tasarladı.
- Talep üzerine tahsis: Gerektiğinde parçalar halinde sanal adres alanı atanır.
- Bitişik Olmayan: Kaynak sınırlarını ortadan kaldırmak için sanal adres alanı bir bellek aralığında olmalıdır.
- Taşıma: Nesneleri taşımak, gereksiz yığınlar bir işletim sistemine geri alınırken belleğin parçalanabileceği anlamına gelir.
Şunlar da hoşunuza gidebilir: Angular vs React: 2019'da Hangi Çerçeveyi Seçmelisiniz.
Çözüm

Android cihazlar için JavaScript Facebook projesi, Facebook ekibinin üzerinde çalıştığı birçok proje arasında yer alıyor. Ekip, aynı zamanda hafıza ve zaman analiz yolları yaratmayı da dört gözle bekliyor. Bu, Android uzmanlarının uygulamalarını geliştirmesini kolaylaştıracak. Android cihazlar motorları için JavaScript Facebook'u test edin ve işlevlerini görün. Deneyimlerinizi bizimle paylaşın ve varsa sorularınızı da bize sorabilirsiniz.
Bu makale Thomas Miller tarafından yazılmıştır. İnsanları en son teknolojiler hakkında bilgilendirmeyi seven bir Android teknolojisi uzmanıdır. Thomas ayrıca Android cihazlar için JavaScript Facebook fikrini seviyor ve onu kullandı ve nasıl çalıştığını beğendi. Ayrıca autoexpertguides.com'da otomotiv sektörü için en iyi uzman incelemelerini derler.
