- Google Sheets टीम ने 2022 में Chrome में WasmGC के उपयोग की घोषणा के बाद मिलकर काम किया
- इससे Google के apps को WasmGC पर चलाने के लिए एक मिसाल बनी
- समस्या: JavaScript
- Google Sheets का calculation engine मूल रूप से Java में लिखा गया था और 2006 में लॉन्च हुआ था, तथा सभी calculations server पर होते थे
- 2013 से इसे JavaScript का उपयोग करके browser में चलाया जाने लगा
- पहले Google Web Toolkit(GWT) का उपयोग किया गया, बाद में Java to Closure JavaScript transpiler(J2CL) का
- JavaScript calculation engine Web Worker में चलता है और
MessageChannel के ज़रिए main thread से संचार करता है
- JavaScript version, Java version की तुलना में 3 गुना से भी अधिक धीमा है
- JavaScript, Java से धीमा क्यों है
- JavaScript एक dynamic language है और JIT compiler के ज़रिए इसकी performance बेहतर हुई है, लेकिन फिर भी सीमाएँ बनी रहती हैं
- loose typing और dynamic behavior की वजह से optimal code generation मुश्किल होता है
- TypeScript भी development को आसान बनाता है, लेकिन optimization के लिए ज़रूरी guarantees नहीं देता
- समाधान: WasmGC
- यह WebAssembly का एक extension है, जो garbage-collected languages को compile करने के लिए ज़रूरी features जोड़ता है
- इससे Java जैसी languages को web पर लगभग native speed में चलाना संभव होता है
- उम्मीद है कि इसका असर C++ के लिए Wasm से भी बड़ा होगा
- Google Workspace और Chrome का सहयोग
- 2020 के अंत से WasmGC के मूल्यांकन के लिए साथ काम शुरू किया गया
- Sheets calculation engine को आदर्श test target के रूप में चुना गया
- V8 टीम और Binaryen(WASM optimization toolchain) contributors ने WasmGC runtime और AOT optimization संभाला
- optimization प्रक्रिया
- शुरुआती version JavaScript से 2 गुना धीमा था, लेकिन लगातार optimization जारी है
- JVM और V8 की मुख्य optimization techniques को दोहराया गया (virtual method dispatching, speculative inlining और devirtualization लागू करने मात्र से 40% speed improvement)
- अत्यधिक optimized browser APIs का उपयोग किया गया (उदाहरण: regular expression processing में 100 गुना सुधार)
- JavaScript-विशिष्ट coding patterns हटाए गए
- निष्कर्ष
- WasmGC एक ऐसी तकनीक है जिसमें web application development के तरीके को आगे बढ़ाने की क्षमता है
- आगे चलकर WasmGC से shared-memory multithreading support और single-thread performance improvement की उम्मीद है
- सभी web developers को high-performance projects में WasmGC के उपयोग की सिफारिश की गई है
2 टिप्पणियां
यह काफ़ी उल्लेखनीय उदाहरण है।
आखिरकार, JavaScript से WasmGC में पोर्ट करने के बाद यह कितना तेज़ हुआ, इसके बारे में यहाँ कोई बात नहीं है, लेकिन नीचे दिए गए लेख को देखें तो कहा गया है कि यह 2 गुना तेज़ हो गया।
Doubling calculation speed and other new innovations in Google Sheets
संदर्भ : WebAssembly garbage collection (WasmGC) अब Chrome में डिफ़ॉल्ट रूप से सक्षम है