Examining performance benefits of real-world WebAssembly applications : a quantitative multiple-case study
Ketonen, Teemu (2022)
Kandidaatintyö
Ketonen, Teemu
2022
School of Engineering Science, Tietotekniikka
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2022022220445
https://urn.fi/URN:NBN:fi-fe2022022220445
Tiivistelmä
The advancement of the Web platform has pushed developers to create more interactive and sophisticated applications. Traditionally, these apps have been created in JavaScript, as it is the only high-level language that is natively supported on web browsers. Due to the language's design, which promotes ease of use over performance, JavaScript is not well-equipped to handle the growing number of compute-intensive applications. WebAssembly is a relatively new Web standard for running low-level code at near-native speed to particularly address this limitation. This study aims to bridge a gap in earlier research, which covers only theoretical benchmarks that do not necessarily present real applications, to demonstrate that WebAssembly outperforms JavaScript.
A quantitative multiple-case study was undertaken to support the hypothesis that WebAssembly performs better in performance-demanding applications found in the real world. Data was collected from prepared measurements discovered in primary sources highlighting the transition from JavaScript to WebAssembly. The results showed a significant improvement in performance, with execution times ranging from 2x to 39x faster. In addition, the complexity of an application seemed to have a factor in how much it could benefit from the shift. Web-alustan teknologinen kehittyminen on antanut mahdollisuuden rakentaa yhä interaktiivisempia ja monimutkaisempia sovelluksia. Perinteisesti nämä sovellukset on tehty JavaScriptillä, koska se on ainoa verkkoselaimilla tuettu korkean tason ohjelmointikieli. JavaScript ei kuitenkaan ole tarpeeksi kykenevä vastaamaan näiden sovellusten kasvavaan suorituskykytarpeeseen, koska se keskittyy suorituskyvyn sijasta helppokäyttöisyyteen. Tämän puutteen korjaamiseksi kehitettiin WebAssembly, joka on suhteellisen uusi Web-standardi ohjelmakoodin suorittamiseen hyvällä suorituskyvyllä. Tässä työssä pyritään täyttämään aikaisemman tutkimuksen jättämä aukko käsittelemällä teoreettisten suorituskykymittausten sijasta reaalimaailman käyttökohteita. Tarkoitus on varmistua, että WebAssembly suoriutuu määritellyssä tehtävässään paremmin kuin JavaScript.
Aiheen tutkimista varten toteutettiin kvantitatiivinen monitapaustutkimus, jotta tulokset olisivat paremmin yleistettävissä. Tavoitteena oli etsiä ulkoisista lähteistä reaalimaailman käyttötapauksia, jotka korostivat siirtymistä JavaScriptistä WebAssemblyyn sekä näiden suorituskyvyn vertailua. Tulokset osoittivat merkittävää parantumista; joissakin tapauksissa suoritusaika oli jopa 39 kertaa nopeampi. Lisäksi sovellusten kompleksisuuden havaittiin vaikuttavan siihen, kuinka paljon ne voivat hyötyä WebAssemblyn käyttöönotosta.
A quantitative multiple-case study was undertaken to support the hypothesis that WebAssembly performs better in performance-demanding applications found in the real world. Data was collected from prepared measurements discovered in primary sources highlighting the transition from JavaScript to WebAssembly. The results showed a significant improvement in performance, with execution times ranging from 2x to 39x faster. In addition, the complexity of an application seemed to have a factor in how much it could benefit from the shift.
Aiheen tutkimista varten toteutettiin kvantitatiivinen monitapaustutkimus, jotta tulokset olisivat paremmin yleistettävissä. Tavoitteena oli etsiä ulkoisista lähteistä reaalimaailman käyttötapauksia, jotka korostivat siirtymistä JavaScriptistä WebAssemblyyn sekä näiden suorituskyvyn vertailua. Tulokset osoittivat merkittävää parantumista; joissakin tapauksissa suoritusaika oli jopa 39 kertaa nopeampi. Lisäksi sovellusten kompleksisuuden havaittiin vaikuttavan siihen, kuinka paljon ne voivat hyötyä WebAssemblyn käyttöönotosta.