Profdiff Visualizer
Thesis title in Czech: | Profdiff Vizualizér |
---|---|
Thesis title in English: | Profdiff Visualizer |
Key words: | jit|překladač|výkon|profdiff |
English key words: | jit|compiler|performance|profdiff |
Academic year of topic announcement: | 2025/2026 |
Thesis type: | Bachelor's thesis |
Thesis language: | angličtina |
Department: | Department of Distributed and Dependable Systems (32-KDSS) |
Supervisor: | Mgr. Andrej Pečimúth |
Author: | hidden![]() |
Date of registration: | 27.08.2025 |
Date of assignment: | 27.08.2025 |
Confirmed by Study dept. on: | 27.08.2025 |
Opponents: | doc. Ing. Lubomír Bulej, Ph.D. |
Guidelines |
Diagnosing performance regressions in JIT compilers like the GraalVM compiler is a complex challenge. The compiler's optimizations are highly sensitive to profiling feedback, which can be unstable between virtual machine runs. The GraalVM compiler can extract the decisions from a run in a structured log, and the profdiff CLI tool can report the differences in optimization decisions between two runs. The text-based output of the tool shows the differences in optimization or inlining between pairs of the most frequently executed compilation units (or parts of compilation units). However, due to the large number of compilations, the number of applied optimizations, and inlining differences, the output of profdiff can become hard to navigate and interpret, especially if a compiler engineer wishes to compare multiple pairs of runs.
This project addresses these issues by designing and implementing a client-server web application that provides a user-friendly, graphical interface for profdiff. The application will allow the user to open a directory with the structured logs and present the performance statistics of the runs. The user can select a single run to view or a pair of runs to compare, and then select which compilations to focus on (and which compilation pairs to compare) based on the measured method profile. The interface should also offer an option to interactively adjust the format and verbosity of the output. |
References |
[1] Diagnosing Compiler Performance by Comparing Optimization Decisions, https://dl.acm.org/doi/10.1145/3617651.3622994
[2] GraalVM, https://www.graalvm.org/ |