Profdiff Visualizer
Profdiff Vizualizér
bakalářská práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/210744Identifikátory
SIS: 285926
Kolekce
- Kvalifikační práce [12356]
Autor
Vedoucí práce
Oponent práce
Bulej, Lubomír
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Informatika se specializací Programování a vývoj software
Katedra / ústav / klinika
Katedra distribuovaných a spolehlivých systémů
Datum obhajoby
18. 6. 2026
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Klíčová slova (česky)
jit|překladač|výkon|profdiffKlíčová slova (anglicky)
jit|compiler|performance|profdiffDiagnostika změn ve výkonu aplikace, které jsou způsobeny optimalizacemi dynamic- kých překladačů, jako je GraalVM, je náročná. Během jediného běhu benchmarku vznikají tisíce kompilačních jednotek, z nichž každá prochází stovkami transformací, od rozhod- nutí o inliningu až po konkrétní optimalizace interní reprezentace kódu. Stávající nástroj Profdiff pro příkazovou řádku sice identifikuje rozdíly v optimalizacích překladače, avšak orientace v čistě textovém výstupu postrádá potřebnou interaktivitu pro sledování na sobě závislých kroků překladu, které způsobují pokles výkonu aplikace. Cílem této práce je urychlit identifikaci regrese vytvořením webového grafického rozhraní postaveného na nástroji Profdiff. Výsledná aplikace umožňuje uživatelům procházet běhy benchmarků, zvýraznit nejčastěji běžící kompilační jednotky a pomocí interaktivních optimalizačních stromů pomáhá rychleji analyzovat rozdíly v překladu mezi jednotlivými běhy. Backend postavený na frameworku Micronaut a upraveném kódu nástroje Profdiff zpřístupňuje data skrze REST API, zatímco frontend v Angularu nabízí pohled na porovnávané běhy benchmarků a jejich metadata. Přínos vytvořeného nástroje, Profdiff Visualizer, je v zá- věru demonstrován na case study, která ukazuje, jak aplikace zjednodušuje odhalení příčin regrese.
Diagnosing performance regressions in dynamic compilers like the GraalVM com- piler is difficult because a single benchmark run can involve thousands of compilation units, each undergoing hundreds of inlining and optimization transformations. While the existing Profdiff command-line tool successfully identifies optimization differences, pre- senting deeply nested compilation trees as formatted text output lacks the interactivity needed to trace how a single inlining decision triggers a chain of dependent optimizations that together cause a non-trivial regression. This thesis addresses this gap by develop- ing a web-based GUI for Profdiff. The developed application allows users to navigate benchmark runs, highlight the hottest compilation units, and visualize interactive tree comparisons for faster regression detection. A Micronaut backend wraps the modified Profdiff logic as a dependency and exposes a REST API, while an Angular frontend pro- vides a comprehensive view of diffed benchmark runs and their metadata. Demonstrated through a case study on the mnemonics Renaissance benchmark, the resulting Profdiff Visualizer reduces the manual effort required to navigate raw text output by providing an interactive interface for diagnosing compilation regressions.
