- 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
Ini contoh yang patut diperhatikan.
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