Facebook mengeluarkan kod sumber enjin JavaScript Hermes

Hermes

Facebook telah membuka kod sumber untuk mesin JavaScript Hermes ringan, dioptimumkan untuk menjalankan aplikasi berasaskan rangka kerja React Native pada platform Android.

Jurutera Perisian Facebook Marc Horowitz mendedahkan mesin JavaScript baru pada persidangan Chain React 2019 di Portland, Oregon. Hermes adalah alat pembangun baru yang memfokuskan pada peningkatan prestasi permulaan aplikasi dengan cara yang sama seperti yang dilakukan Facebook untuk aplikasinya dan menjadikan aplikasi lebih berkesan pada telefon pintar peringkat permulaan.

Mengenai Hermes

Sokongan Hermes dimasukkan ke dalam React Native pada versi hari ini 0.60.2. Projek ini diakui untuk menyelesaikan masalah dengan masa permulaan yang lama untuk aplikasi JavaScript asli dan penggunaan sumber yang ketara. Kod tersebut ditulis dalam C ++ dan diedarkan di bawah lesen MIT.

Kelebihan menggunakan Hermes, terdapat pengurangan waktu mula aplikasi, penurunan penggunaan memori dan penurunan ukuran aplikasi.

Pecutan aplikasi pelancaran dicapai dengan menggunakan penyusunan dalam kod bytec padat dan cekap pada peringkat penyusunan.

Untuk menjalankan aplikasi secara langsung, mesin maya digunakan dengan pengumpul sampah SemiSpace yang dikembangkan sebagai sebahagian daripada projek. Dengan V8, yang terpanjang adalah langkah-langkah untuk menguraikan kod sumber dan menyusunnya dengan cepat.

Enjin Hermes mengambil peringkat ini ke tahap penyusunan dan membolehkan aplikasi dihantar dalam bentuk kod byte yang dioptimumkan.

Pemprosesan JavaScript dibahagikan kepada beberapa peringkat. Pada mulanya, kod sumber dihuraikan dan perwakilan kod perantaraan (Hermes IR) dihasilkan, berdasarkan perwakilan SSA (Static Unique Assignment).

Di samping itu, perwakilan antara diproses dalam pengoptimum, yang menggunakan teknik pengoptimuman statik proaktif untuk menukar kod perantaraan primer menjadi perwakilan perantaraan yang lebih efisien, sambil mengekalkan semantik program asal.

Akhirnya pada peringkat terakhir, kod bait untuk mesin maya berdaftar dihasilkan.

Dalam demo, Marc Horowitz menunjukkan bahawa aplikasi React Native dengan Hermes ia dimuat sepenuhnya kira-kira dua saat lebih pantas daripada aplikasi yang sama yang dimuatkan tanpa Hermes.

Marc Horowitz memastikan Hermes juga mengurangkan ukuran APK ke tengah aplikasi React Native yang disimpan 41MB dan menghapuskan seperempat penggunaan memori aplikasi.

Dengan kata lain, dengan Hermes, pembangun dapat membuat pengguna berinteraksi dengan lebih cepat dengan aplikasi dengan lebih sedikit halangan, seperti waktu muat turun yang perlahan dan sekatan yang disebabkan oleh banyak aplikasi yang berkongsi sumber memori yang terhad, seperti: Terutama pada input telefon tahap.

Mesin menyokong sebahagian daripada standard JavaScript ECMAScript 2015 (sokongan penuhnya adalah tujuan akhir) dan serasi dengan kebanyakan aplikasi React Native yang ada. Di Hermes, diputuskan untuk tidak mendukung pemutus lokal eval (), ekspresi "dengan", refleksi (Refleksi dan Proksi), Intl API API dan beberapa bendera di RegExp.

Untuk mengaktifkan Hermes dalam aplikasi React Native, cukup tambahkan pilihan "allowHermes: true" ke projek. Anda juga dapat menyusun Hermes dalam mod antara muka CLI, yang membolehkan anda menjalankan fail JavaScript sewenang-wenangnya dari baris perintah.

Pada masa yang sama Facebook tidak merancang untuk menyesuaikan Hermes untuk Node.js dan penyelesaian lain, hanya memfokuskan pada aplikasi mudah alih (menyusun AOT dan bukannya JIT lebih optimum dalam konteks aplikasi mudah alih berasaskan React Native).

Microsoft melakukan ujian prestasi awal dan menunjukkan bahawa ketika menggunakan Hermes, aplikasi Microsoft Office untuk Android tersedia untuk berfungsi dalam 1.1 saat.

Setelah dilancarkan dan ia menghabiskan 21.5MB RAM, semasa menggunakan enjin V8, 1.4 saat dihabiskan semasa pelancaran, dan penggunaan memori adalah 30MB.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.