25 poin oleh xguru 2024-06-28 | 2 komentar | Bagikan ke WhatsApp
  • Tim Google Sheets telah bekerja sama erat sejak mengumumkan penggunaan WasmGC di Chrome pada 2022
  • Ini menjadi preseden agar aplikasi Google dapat berjalan di WasmGC
  • Masalah: JavaScript
    • Mesin perhitungan Google Sheets awalnya ditulis dalam Java dan dirilis pada 2006, dengan semua perhitungan dilakukan di server
    • Sejak 2013, mesin ini berjalan di browser menggunakan JavaScript
      • Awalnya memakai Google Web Toolkit (GWT), lalu belakangan menggunakan transpiler Java to Closure JavaScript (J2CL)
    • Mesin perhitungan JavaScript berjalan di Web Worker dan berkomunikasi dengan thread utama melalui MessageChannel
    • Versi JavaScript lebih dari 3 kali lebih lambat dibanding versi Java
  • Mengapa JavaScript lebih lambat daripada Java
    • JavaScript adalah bahasa dinamis yang performanya ditingkatkan lewat compiler JIT, tetapi tetap memiliki keterbatasan
    • Tipe yang longgar dan perilaku dinamis membuat pembuatan kode optimal menjadi sulit
    • TypeScript memang mempermudah pengembangan, tetapi tidak memberi jaminan yang dibutuhkan untuk optimasi
  • Solusi: WasmGC
    • Ekstensi WebAssembly yang menambahkan kemampuan yang diperlukan untuk mengompilasi bahasa dengan garbage collection
    • Memungkinkan bahasa seperti Java berjalan di web dengan kecepatan yang mendekati native
    • Diperkirakan akan berdampak lebih besar daripada Wasm untuk C++
  • Kolaborasi Google Workspace dan Chrome
    • Mulai bekerja sama sejak akhir 2020 untuk mengevaluasi WasmGC
    • Mesin perhitungan Sheets dipilih sebagai target pengujian yang ideal
    • Tim V8 dan para kontributor Binaryen (toolchain optimasi WASM) menangani runtime WasmGC dan optimasi AOT
  • Proses optimasi
    • Versi awal 2 kali lebih lambat daripada JavaScript, tetapi optimasi terus dilakukan
    • Meniru teknik optimasi inti dari JVM dan V8 (hanya dengan menerapkan virtual method dispatch, speculative inlining, dan devirtualization, kecepatan meningkat 40%)
    • Memanfaatkan API browser yang sangat dioptimalkan (misalnya, pemrosesan regular expression meningkat 100 kali)
    • Menghapus pola coding yang khusus ditujukan untuk JavaScript
  • Kesimpulan
    • WasmGC adalah teknologi yang berpotensi mengembangkan cara pembuatan aplikasi web
    • Ke depannya, WasmGC diharapkan mendukung multithreading shared memory dan meningkatkan performa single-thread
    • Semua pengembang web direkomendasikan untuk menggunakan WasmGC pada proyek berperforma tinggi

2 komentar

 
ragingwind 2024-06-28

Ini contoh yang patut diperhatikan.

 
xguru 2024-06-28

Kesimpulannya, tidak ada pembahasan tentang seberapa besar peningkatannya setelah dipindahkan dari JavaScript ke WasmGC, tetapi jika melihat tulisan di bawah, disebutkan bahwa kecepatannya menjadi 2 kali lebih cepat.
Doubling calculation speed and other new innovations in Google Sheets

Referensi: WebAssembly Garbage Collection (WasmGC) kini diaktifkan secara default di Chrome