Original title:
Profdiff Vizualizér
Translated title:
Profdiff Visualizer
Authors:
Daněk, Jiří ; Pečimúth, Andrej (advisor) ; Bulej, Lubomír (referee) Document type: Bachelor's theses
Year:
2026
Language:
eng Abstract:
[eng][cze] 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.Diagnostika 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.
Keywords:
jit|compiler|performance|profdiff; jit|překladač|výkon|profdiff
Institution: Charles University Faculties (theses)
(web)
Document availability information: Available in the Charles University Digital Repository. Original record: http://hdl.handle.net/20.500.11956/210744