<?xml version="1.0" encoding="utf-8"?>
<Gradivo ID="187357" NadgradivoID="0" NRID="29237459" OceID="0" DomainUrl="https://repozitorij.uni-lj.si/" IzpisPolniUrl="https://repozitorij.uni-lj.si/IzpisGradiva.php?lang=slv&amp;id=187357" StOgledov="40" StPrenosov="7" StOcen="0" VsotaOcen="0" DatumIzvoza="2026-09-19 22:40:30" OcenaSkupna="0" StPodgradiv="0" StudijskiProgramEvsID="1000468" JeIndeksirano="0" JeVecAvtorjev="0" DovoliZahtevkeZaDostop="0">
  <PID Url="http://hdl.handle.net/20.500.12556/RUL-187357">20.500.12556/RUL-187357</PID>
  <Naslov>WebAssembly profilirnik za brskalnik</Naslov>
  <Podnaslov></Podnaslov>
  <TujJezik_Naslov>Browser WebAssembly Profiler</TujJezik_Naslov>
  <TujJezik_Podnaslov></TujJezik_Podnaslov>
  <Opis>WebAssembly je postal pomembna izvedbena platforma za spletne aplikacije,
pri katerih je zmogljivost ključnega pomena. To diplomsko delo predstavlja
zasnovo in implementacijo profilirnika za programe WebAssembly, ki tečejo
v spletnih brskalnikih. Profilirnik je implementiran kot razširitev brskalnika
Manifest V3, dopolnjuje pa ga orodje v vsebniku Docker, ki se uporablja
za napredno simbolizacijo. Razviti sistem podpira dve tehniki profiliranja:
statistično vzorčenje prek protokola Chrome DevTools in inštrumentacijo
s pomočjo knjižnice Binaryen. Rezultati profiliranja so prikazani v obliki
dreves klicev in plamenskih grafov. Profilirnik izvaja tudi proces simbolizacije,
pri katerem se indeksi funkcij najprej preslikajo na imena, pridobljena iz
imenskega odseka (angl. section) WebAssembly, medtem ko se razhroščevalne
informacije DWARF uporabijo za obnovo izvornih imen funkcij in njihovih
lokacij znotraj izvornih datotek in vrstic.
Sistem je bil ocenjen z uporabo sintetičnega testnega programa, ki vsebuje
rekurzivne klice, pogosto izvajane funkcije in kratkotrajne funkcije. Rezultati
kažejo, da inštrumentacija beleži vse klice funkcij in zagotavlja natančno
število klicev, vendar povzroča dodatno režijsko obremenitev, sorazmerno
s številom inštrumentiranih klicev. Vzorčenje povzroča bistveno manjšo
dodatno obremenitev in ustvari strukturo klicev, primerljivo s tisto, ki jo
pridobimo s profilirnikom perf, vendar ne more zanesljivo zajeti kratkotrajnih
ali redko pojavljajočih se dogodkov ter ne zagotavlja natančnega števila
klicev. Razviti profilirnik omogoča vzorčenje, inštrumentacijo, simbolizacijo,
vizualizacijo s plamenskim grafom ter uvoz in izvoz profilov za aplikacije
WebAssembly, ki tečejo v brskalnikih na osnovi Chromiuma.</Opis>
  <TujJezik_Opis>WebAssembly has become an important execution platform for performance
critical Web applications. This thesis presents the design and implementation
of a profiler for WebAssembly programs running in web browsers. The profiler
is implemented as a Manifest V3 browser extension and is complemented by
a Docker component used for advanced symbolization. The developed system
supports two profiling techniques: statistical sampling through the Chrome
DevTools Protocol and instrumentation using the Binaryen library. Profiling
results are represented as call trees and flame graphs. The profiler also
implements a symbolization process, where function indices are first mapped
to names obtained from the WebAssembly name section, while DWARF
debugging information is used to recover source-level function names, source
files, and line numbers.
The system was evaluated using a synthetic benchmark containing recursive calls, frequently executed functions, and short-lived functions. The results
show that instrumentation records all function invocations and provides exact
call counts, but introduces overhead proportional to the number of instrumented calls. Sampling introduces substantially lower overhead and produces
a call structure comparable to that obtained with the profiler perf, but
cannot reliably capture short-lived or infrequently occurring events and does
not provide exact invocation counts. The developed profiler implements sampling, instrumentation, symbolization, flame graph visualization and profile
import and export for WebAssembly applications running in Chromium-based
browsers.</TujJezik_Opis>
  <KljucneBesede>
    <Beseda>WebAssembly</Beseda>
    <Beseda>profiliranje</Beseda>
    <Beseda>vzorčenje</Beseda>
    <Beseda>inštrumentacija</Beseda>
    <Beseda>plamenski graf</Beseda>
    <Beseda>brskalniška razširitev</Beseda>
    <Beseda>Chromium</Beseda>
  </KljucneBesede>
  <TujJezik_KljucneBesede>
    <Beseda>WebAssembly</Beseda>
    <Beseda>profiling</Beseda>
    <Beseda>sampling</Beseda>
    <Beseda>instrumentation</Beseda>
    <Beseda>flame graph</Beseda>
    <Beseda>browser extension</Beseda>
    <Beseda>Chromium</Beseda>
  </TujJezik_KljucneBesede>
  <Potrjeno>true</Potrjeno>
  <JeZaklenjeno>false</JeZaklenjeno>
  <JeRecenzirano>false</JeRecenzirano>
  <Zaloznik></Zaloznik>
  <Izvor></Izvor>
  <Jezik ID="1060" ISO639-3="slv">Slovenski jezik</Jezik>
  <TujJezik ID="1033" ISO639-3="eng">Angleški jezik</TujJezik>
  <Povezave></Povezave>
  <Pokrivanje></Pokrivanje>
  <CasovnoPokritje></CasovnoPokritje>
  <AvtorskePravice></AvtorskePravice>
  <VrstaGradiva ID="mb11" DRIVER="info:eu-repo/semantics/bachelorThesis">Diplomsko delo/naloga</VrstaGradiva>
  <DatumVstavljanja>2026-09-10 11:35:01</DatumVstavljanja>
  <DatumObjave>2026-09-10 11:35:09</DatumObjave>
  <DatumSpremembe>2026-09-12 03:29:28</DatumSpremembe>
  <DatumTrajnegaHranjenja>0000-00-00 00:00:00</DatumTrajnegaHranjenja>
  <LetoIzida>2026</LetoIzida>
  <LetoIzidaDo>0</LetoIzidaDo>
  <KrajIzida></KrajIzida>
  <LetoIzvedbe>0</LetoIzvedbe>
  <KrajIzvedbe></KrajIzvedbe>
  <Opomba></Opomba>
  <StStrani></StStrani>
  <StevilcenjeNivo1></StevilcenjeNivo1>
  <StevilcenjeNivo2></StevilcenjeNivo2>
  <Kronologija></Kronologija>
  <Patent_Stevilka></Patent_Stevilka>
  <Patent_DatumVeljavnosti>0000-00-00</Patent_DatumVeljavnosti>
  <VerzijaDokumenta>NiDoloceno</VerzijaDokumenta>
  <StatusObjaveDrugje>NiDoloceno</StatusObjaveDrugje>
  <VrstaStroskaObjave>NiDoloceno</VrstaStroskaObjave>
  <DatumPoslanoVRecenzijo>0000-00-00</DatumPoslanoVRecenzijo>
  <DatumSprejetjaClanka>0000-00-00</DatumSprejetjaClanka>
  <DatumObjaveClanka>0000-00-00</DatumObjaveClanka>
  <EmbargoDo>1970-01-01</EmbargoDo>
  <VrstaEmbarga ID="1" Naziv="Takojšnja javna objava" OpenAIREDostop="openAccess"></VrstaEmbarga>
  <Osebe>
    <Oseba ID="165577" Ime="Luka" Priimek="Kosec Mikić" AltIme="" VlogaID="70" VlogaNaziv="Avtor" ConorID="" Afiliacija="" ArrsID="0" ORCID=""></Oseba>
    <Oseba ID="24089" Ime="Marko" Priimek="Poženel" AltIme="" VlogaID="991" VlogaNaziv="Mentor" ConorID="55311459" Afiliacija="" ArrsID="23953" ORCID=""></Oseba>
  </Osebe>
  <Identifikatorji>
    <Identifikator ID="16" Sifra="VisID" Naziv="VisID" URL="">38976</Identifikator>
  </Identifikatorji>
  <Datoteke>
    <Datoteka ID="246972" DatotekaNRID="14784439" NamenDatotekeID="2" NamenDatoteke="Predstavitvena datoteka" FormatDatotekeID="2" FormatDatoteke=".pdf" MIME="application/pdf" IkonaFormata="pdf.png" IkonaFormataPolniUrl="https://repozitorij.uni-lj.si/teme/rulDev/img/fileTypes/pdf.png" VelikostDatoteke="1574337" VelikostDatotekeKratko="1,50 MB" DatumVstavljanja="2026-09-10 11:35:12" JeZbrisana="false" JeJavnoVidna="true" JeIndeksirana="false" JeVidno="true" VidnoOd="01.01.1970" Zaporedje="0">
      <Naziv>Kosec_mikic_Luka_-_WebAssembly_profilirnik_za_brskalnik.pdf</Naziv>
      <OrgNaziv>Kosec_mikic_Luka_-_WebAssembly_profilirnik_za_brskalnik.pdf</OrgNaziv>
      <URL></URL>
      <Opis></Opis>
      <OpisTujJezik></OpisTujJezik>
      <UrlObdelave></UrlObdelave>
      <FrekvencaAzuriranjaID>1</FrekvencaAzuriranjaID>
      <Verzija></Verzija>
      <MD5>53FDB935D7103B51943B98F235D78C9D</MD5>
      <SHA256>b96ada254c1d12e858dcc134cf4b9ced624fb8b99b70e4eca6d5aa490eb06b64</SHA256>
      <UUID>e56d7aac-acfa-11f1-8bc5-0050569b8976</UUID>
      <PID></PID>
      <PrenosPolniUrl>https://repozitorij.uni-lj.si/Dokument.php?lang=slv&amp;id=246972</PrenosPolniUrl>
      <Vsebine>
      </Vsebine>
    </Datoteka>
  </Datoteke>
  <Organizacije>
    <Organizacija OrganizacijaID="25" Kratica="FRI" ZavodEvsID="0000066" Logo="" LogoPolniUrl="https://repozitorij.uni-lj.si/teme/rulDev/img/logo/">Fakulteta za računalništvo in informatiko</Organizacija>
  </Organizacije>
  <OrganizacijeVira>
  </OrganizacijeVira>
  <MetodeZbiranjaPodatkov>
  </MetodeZbiranjaPodatkov>
  <TipologijaDela ID="0" Koda="0" Naziv="Ni določena" SchemaOrg="CreativeWork"></TipologijaDela>
  <Ostalo>
    <StIrodsDatotek>0</StIrodsDatotek>
    <StDatotekPodTrajnimEmbargom>0</StDatotekPodTrajnimEmbargom>
    <StDatotekZOmejenimDostopom>0</StDatotekZOmejenimDostopom>
  </Ostalo>
</Gradivo>
