WebAssembly : Motiivit ja Suoritustehoanalyysi
Lamberg, Tommi (2024)
Lamberg, Tommi
2024
Tietojenkäsittelytieteiden kandidaattiohjelma - Bachelor's Programme in Computer Sciences
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
Hyväksymispäivämäärä
2024-12-17
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-2024112910647
https://urn.fi/URN:NBN:fi:tuni-2024112910647
Tiivistelmä
WebAssembly on uusi tulokas verkkokehityksen maailmassa. WebAssemblyllä pyritään mullistamaan verkkosovellusten kehitystä lupaamalla suuria edistyksiä sovellusten suoritustehossa. Suoritustehon suurimpana rajoittavana tekijänä oli JavaScript, joka oli 2010-luvun alussa ainoa selainten tukema ohjelmointikieli. WebAssembly on binäärinen käskykanta, jolla mahdollistetaan muidenkin ohjelmointikielten kuin JavaScriptin, kuten C/C++ ja Rustin ajaminen verkossa. Nykypäivänä 96 % selaimista tukee WebAssemblyä ja sen käyttökohteet, sekä -ympäristöt ovat hyvin laaja-alaiset. Tässä tutkielmassa keskitytään WebAssemblyn verkkosovellusten kehitysteknologiana.
Tutkielmassa tarkastellaan motiiveja WebAssemblyn kehityksen takana, sekä selvitetään, tuoko teknologia verkkosovelluksiin merkittäviä parannuksia niiden suoritustehoon. Tämän perusteella pohditaan, kykeneekö WebAssembly haastamaan verkkosovellusten kehityksen hallitsevaa ohjelmointikieltä, eli JavaScriptiä. Tämä tutkielma siis painottuu erityisesti vastaamaan kysymykseen: Kuinka WebAssemblyn suoritusteho vertautuu JavaScriptiin?
Tutkielma toteutetaan kirjallisuuskatsauksena, jossa käytetään lähteinä tieteellisiä artikkeleita, tutkimuksia ja mittauksia WebAssemblyn virallisesta julkaisusta vuonna 2017 tähän päivään. Tieteellisten lähteiden lisäksi tutkielmassa käytetään lähteenä myös näitä tukevia sovelluskehittäjien uutisia ja blogeja, sekä teknologian standardeja ja dokumentaatiota.
Kirjallisuuskatsauksesta selviää, että WebAssembly on lähtökohtaisesti huomattavasti nopeampi kuin JavaScript, mutta on myös tilanteita, joissa WebAssembly voi suoriutua JavaScriptiä heikommin. Kirjallisuuskatsauksessa myös selviää, että tutkimusten välillä on suuria eroja WebAssemblyn suoritustehojen mittauksissa ja tulosten välillä on jopa ristiriitoja. Tämän vuoksi tässä tutkielmassa toteutetaan myös kokeellinen osa, jossa verrataan JavaScriptin ja WebAssemblyn suoritustehoa matriisien kertolaskuissa. Kokeellisessa osassa selviää, että monet WebAssemblyn ongelmakohdat, joita tieteellisissä tutkielmissa mainittiin, kuten suuri muistinkäyttö on parantunut merkittävästi vuosien aikana ja WebAssemblyssä on potentiaalia verkkokehityksessä suoritustehoa vaativissa sovelluksissa.
Tutkielmassa tarkastellaan motiiveja WebAssemblyn kehityksen takana, sekä selvitetään, tuoko teknologia verkkosovelluksiin merkittäviä parannuksia niiden suoritustehoon. Tämän perusteella pohditaan, kykeneekö WebAssembly haastamaan verkkosovellusten kehityksen hallitsevaa ohjelmointikieltä, eli JavaScriptiä. Tämä tutkielma siis painottuu erityisesti vastaamaan kysymykseen: Kuinka WebAssemblyn suoritusteho vertautuu JavaScriptiin?
Tutkielma toteutetaan kirjallisuuskatsauksena, jossa käytetään lähteinä tieteellisiä artikkeleita, tutkimuksia ja mittauksia WebAssemblyn virallisesta julkaisusta vuonna 2017 tähän päivään. Tieteellisten lähteiden lisäksi tutkielmassa käytetään lähteenä myös näitä tukevia sovelluskehittäjien uutisia ja blogeja, sekä teknologian standardeja ja dokumentaatiota.
Kirjallisuuskatsauksesta selviää, että WebAssembly on lähtökohtaisesti huomattavasti nopeampi kuin JavaScript, mutta on myös tilanteita, joissa WebAssembly voi suoriutua JavaScriptiä heikommin. Kirjallisuuskatsauksessa myös selviää, että tutkimusten välillä on suuria eroja WebAssemblyn suoritustehojen mittauksissa ja tulosten välillä on jopa ristiriitoja. Tämän vuoksi tässä tutkielmassa toteutetaan myös kokeellinen osa, jossa verrataan JavaScriptin ja WebAssemblyn suoritustehoa matriisien kertolaskuissa. Kokeellisessa osassa selviää, että monet WebAssemblyn ongelmakohdat, joita tieteellisissä tutkielmissa mainittiin, kuten suuri muistinkäyttö on parantunut merkittävästi vuosien aikana ja WebAssemblyssä on potentiaalia verkkokehityksessä suoritustehoa vaativissa sovelluksissa.
Kokoelmat
- Kandidaatintutkielmat [10646]
