Facebook merilis kode sumber mesin JavaScript Hermes

Hermes

Facebook telah membuka kode sumber untuk mesin JavaScript Hermes yang ringan, dioptimalkan untuk menjalankan aplikasi berbasis kerangka kerja React Native di platform Android.

Insinyur Perangkat Lunak Facebook Marc Horowitz mengungkapkan mesin JavaScript baru pada konferensi Chain React 2019 di Portland, Oregon. Hermes adalah alat pengembang baru yang berfokus pada peningkatan kinerja permulaan aplikasi dengan cara yang sama seperti yang dilakukan Facebook untuk aplikasinya dan membuat aplikasi lebih efektif pada ponsel cerdas tingkat pemula.

Tentang Hermes

Dukungan Hermes dibangun ke dalam React Native pada versi 0.60.2 hari ini. Proyek ini dikenal karena memecahkan masalah dengan waktu mulai yang lama untuk aplikasi JavaScript asli dan konsumsi sumber daya yang signifikan. Kode tersebut ditulis dalam C ++ dan didistribusikan di bawah lisensi MIT.

Keuntungan menggunakan Hermes adalah pengurangan waktu mulai aplikasi, penurunan konsumsi memori dan penurunan ukuran aplikasi.

Percepatan aplikasi meluncurkan dicapai dengan menggunakan prakompilasi dalam bytecode kompak dan efisien pada tahap kompilasi.

Untuk menjalankan aplikasi secara langsung, mesin virtual digunakan dengan pengumpul sampah SemiSpace yang dikembangkan sebagai bagian dari proyek. Dengan V8, yang terpanjang adalah langkah-langkah untuk mengurai kode sumber dan mengkompilasinya dengan cepat.

Mesin Hermes mengambil tahapan ini ke tahap kompilasi dan memungkinkan aplikasi untuk dikirimkan dalam bentuk kode byte yang dioptimalkan.

Pemrosesan JavaScript dibagi menjadi beberapa tahap. Awalnya, kode sumber diurai dan representasi kode perantara (Hermes IR) dibuat, berdasarkan representasi SSA (Penugasan Unik Statis).

Selain itu, representasi perantara diproses di pengoptimal, yang menggunakan teknik pengoptimalan statis proaktif untuk mengubah kode perantara primer menjadi representasi perantara yang lebih efisien, sambil mempertahankan semantik dari program asli.

Akhirnya di tahap terakhir, kode byte untuk mesin virtual terdaftar dibuat.

Dalam demo, Marc Horowitz menunjukkan aplikasi React Native dengan Hermes itu dimuat penuh sekitar dua detik lebih cepat daripada aplikasi yang sama dimuat tanpa Hermes.

Marc Horowitz memastikan Hermes juga mengurangi ukuran APK ke tengah-tengah 41MB aplikasi React Native yang tersimpan dan menghilangkan seperempat dari penggunaan memori aplikasi.

Dengan kata lain, dengan Hermes, pengembang dapat membuat pengguna berinteraksi lebih cepat dengan aplikasi dengan lebih sedikit hambatan, seperti waktu unduh yang lambat dan pembatasan yang disebabkan oleh beberapa aplikasi yang berbagi sumber daya memori terbatas, seperti: Terutama pada input ponsel level.

Mesin ini mendukung sebagian dari standar JavaScript ECMAScript 2015 (dukungan penuhnya adalah tujuan akhir) dan kompatibel dengan sebagian besar aplikasi React Native yang ada. Di Hermes, diputuskan untuk tidak mendukung casting lokal eval (), ekspresi "with", refleksi (Reflect dan Proxy), Intl API API dan beberapa flag di RegExp.

Untuk mengaktifkan Hermes di aplikasi React Native, cukup tambahkan opsi "enableHermes: true" ke proyek. Hermes juga dapat dikompilasi dalam mode antarmuka CLI, yang memungkinkan Anda mengeksekusi file JavaScript sewenang-wenang dari baris perintah.

Pada saat bersamaan, Facebook tidak berencana untuk mengadaptasi Hermes untuk Node.js dan solusi lainnya, hanya berfokus pada aplikasi seluler (menyusun AOT daripada JIT lebih optimal dalam konteks aplikasi seluler berbasis React Native).

Microsoft melakukan tes kinerja awal dan menunjukkan bahwa saat menggunakan Hermes, aplikasi Microsoft Office untuk Android tersedia untuk bekerja dalam 1.1 detik.

Setelah peluncuran dan mengkonsumsi 21.5MB RAM, saat menggunakan mesin V8, 1.4 detik dihabiskan saat peluncuran, dan konsumsi memori 30MB.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.