Statičko profilisanje zasnovano na mašinskom učenju
Ova stranica predstavlja istraživački projekat nastao u saradnji Matematičkog fakulteta Univerziteta u Beogradu i kompanije Oracle. Projekat se bavi primenom mašinskog učenja za predviđanje profila u kompajleru GraalVM Native Image, koji prevodi programe pre izvršavanja. Modeli predviđaju verovatnoće grananja i učestalost izvršavanja metoda. Ova predviđanja usmeravaju odluke kompajlera o umetanju tela metoda, optimizacijama petlji, rasporedu koda i odnosu između brzine izvršavanja i veličine izvršne datoteke.
Profil programa opisuje njegovo ponašanje tokom izvršavanja, uključujući verovatnoće grananja i učestalost izvršavanja metoda i osnovnih blokova. Kod dinamičkog profilisanja zasnovanog na instrumentaciji, optimizacija vođena profilom (PGO) prikuplja ove podatke izvršavanjem instrumentovane verzije programa nad reprezentativnim radnim opterećenjima, a zatim ponovo prevodi aplikaciju uz prikupljeni profil. Dinamičko profilisanje je standardni pristup dobijanju visokokvalitetnih profila za aplikacije visokih performansi. Dodatno prevođenje i izvršavanje radi profilisanja produžavaju postupak izgradnje, dok instrumentacija povećava vreme izvršavanja i potrošnju memorije. Ovi troškovi se nagomilavaju u kontinuiranoj integraciji i mogu premašiti ograničenja resursa ugrađenih sistema. Programeri moraju da osmisle reprezentativna radna opterećenja i održavaju ih kako se kod menja, a nastala složenost i zahtevi za resursima ograničavaju primenu ovog pristupa. Statički profajler predviđa profil iz koda programa tokom prevođenja. Tako kompajler dobija podatke o profilu u jednom postupku izgradnje, bez izvršavanja aplikacije koja se prevodi radi profilisanja. Modeli mašinskog učenja, prethodno obučeni na profilima drugih programa, uče obrasce koji omogućavaju tačna predviđanja.
Statičko profilisanje povezuje kompanije i univerzitete više od tri decenije. Na konferenciji MICRO 1994, Wu i Larus, tada u kompaniji Sequent Computer Systems i na univerzitetu University of Wisconsin–Madison, predstavili su temeljni rad o statičkoj analizi učestalosti grananja i profila programa. Sistem VESPA, koji su na konferenciji OOPSLA 2021 predstavili istraživači kompanije Facebook, danas Meta, i univerziteta Federal University of Minas Gerais (UFMG), koristi neuronsku mrežu za statičko profilisanje pri optimizaciji binarnog koda. Rotem i Cummins u kompaniji Meta koriste mašinsko učenje za optimizaciju vođenu profilom bez profila same aplikacije. Raman i Li u kompaniji Google uče verovatnoće grananja iz radnih opterećenja centara podataka. Ovaj projekat donosi statičko profilisanje zasnovano na mašinskom učenju u Oracle GraalVM Native Image, u kome je dostupno kao ugrađena mogućnost.
U okviru projekta nastali su i radovi o obilasku grafova toka kontrole (Ristović et al., 2025) (Čugurović et al., 2025c) (Ristović et al., 2024) (Čugurović et al., 2023a) i evaluaciji performansi sistema GraalVM (Spasić et al., 2024). Rezultati statičkog profilisanja predstavljeni su u proširenim apstraktima i izlaganjima (Milenković et al., 2025) (Čugurović and Janičić, 2024a) (Čugurović and Janičić, 2023b) (Čugurović, 2022), uključujući predavanje po pozivu na skupu INFORMATIKA 2026 (Čugurović, 2026c).
Izabrani radovi
Ugrađivanja
Profiling Beyond IR: Method-Signature Embeddings for Static Profiling
Autori: Stefan Milenković, Lazar Milikić, Milan Čugurović, Aleksandar Prokopec, Boris Spasojević, Vojin Jovanović i Milena Vujošević Janičić.
Slika za GraalNN prikazuje razlaganje potpisa metoda na tokene i njihovo kodiranje u sažetu reprezentaciju koja se pridružuje svojstvima grafa toka kontrole radi predviđanja verovatnoća grananja. Slika za GraalMHC prikazuje zasebno kodiranje imena paketa, klase i metoda i njihovo dodavanje postojećim svojstvima programa. Na osnovu njih metode se klasifikuju kao hladne ili tople, što usmerava strategiju njihovog prevođenja.
Imena paketa, klasa i metoda sadrže semantičke naznake koje strukturna svojstva programa ostavljaju neiskorišćenim. Ovaj rukopis dodaje sažete vektorske reprezentacije identifikatora u dva profajlera za GraalVM Native Image.
U poređenju sa osnovnom verzijom bez vektorskih reprezentacija imena, proširenje sistema GraalNN smanjuje veličinu binarnih datoteka za Barista za 4.14% i vreme prevođenja za 1.58% na nivou O2. Na nivou O3 smanjenja dostižu 6.53% i 5.51%, uz nepromenjene ili blago poboljšane performanse izvršavanja. Proširenje sistema GraalMHC smanjuje veličinu binarnih datoteka do približno 11%, uz gubitak performansi izvršavanja od nekoliko procenata. Podaci njegovih namenskih vektorskih reprezentacija zauzimaju 2.77 MB, u poređenju sa 163 MB za GloVe.
GraalMHC++
GraalMHC++: A Tunable ML Framework for Size-Aware Optimizing Compilation
Publikacija ili skup: Journal of Systems and Software (Elsevier).
Tematski broj Special Issue on AI Techniques for Performance, Reliability, and Sustainability of Modern Software Systems.
Autori: Milan Čugurović, Aleksandar Prokopec, Boris Spasojević, Vojin Jovanović i Milena Vujošević Janičić.
Slika iznad prikazuje statička svojstva izdvojena iz potpisa metoda, modifikatora pristupa, reprezentacije u kompajleru i grafa toka podataka. Jedan model XGBoost pretvara ova svojstva u ocenu učestalosti izvršavanja, a podesivi prag pretvara ocenu u klasifikaciju metoda kao hladnih ili toplih. Ta klasifikacija određuje prevođenje usmereno na manju veličinu ili na bolje performanse.
Optimizacije poput umetanja tela metoda i odmotavanja petlji mogu povećati binarne datoteke čak i kada se primenjuju na kod koji se retko izvršava. Prag odlučivanja dostupan je kao opcija kompajlera, što omogućava različite odnose veličine i performansi bez obučavanja i distribucije zasebnih modela.
Na mikroservisima Barista i aplikacijama Renaissance, na nivoima O2 i O3, pragovi od 0.1 do 0.7 smanjuju veličinu binarnih datoteka za 8% do 32%, uz gubitak performansi od 1% do 8%. Prag od 0.3 daje binarne datoteke manje za 12% do 21%, uz gubitak performansi od 1% do 3%. Agresivniji prag od 0.9 donosi uštede u veličini do 43%. Okvir je integrisan u Oracle GraalVM Native Image (Čugurović et al., 2026a).
Granice statičkog profilisanja
The Promise of Static Profiling: Exploring the Limits
Publikacija ili skup: MoreVMs Workshop, Programming 2026, Minhen, Nemačka.
Autori: Milan Čugurović, Aleksandar Prokopec, Boris Spasojević, Vojin Jovanović i Milena Vujošević Janičić.
Slika iznad prikazuje dinamičko profilisanje praćeno izborom profila grananja, broja poziva, virtuelnih poziva ili monitora, pojedinačno ili u kombinaciji. Zadržani profili usmeravaju prevođenje, a evaluacija dobijenih programa procenjuje poboljšanja performansi i veličine binarnih datoteka koja bi idealan statički profajler mogao da postigne za ista radna opterećenja.
Većina statičkih profajlera predviđa ponašanje grananja, dok je vrednost drugih vrsta profila manje istražena. Procene važe za ispitana radna opterećenja u okviru modela profilisanja kompajlera.
Na 31 samostalnoj aplikaciji i 7 mikroservisnih aplikacija, kombinovanje sve četiri vrste profila poboljšava performanse izvršavanja samostalnih aplikacija za 25% i propusnost mikroservisa za 40%. Takođe smanjuje veličinu binarnih datoteka za 20.7% i 30%, redom. Rezultati izdvajaju predviđanje broja poziva i virtuelnih poziva kao perspektivne pravce proširivanja statičkog profilisanja izvan verovatnoća grananja (Čugurović et al., 2026e).
GraalMHC
GraalMHC: ML-Based Method-Hotness Classification for Binary-Size Reduction in Optimizing Compilers
Publikacija ili skup: International Conference on Compiler Construction (CC), Sidnej, Australija.
Autori: Milan Čugurović, Aleksandar Prokopec, Boris Spasojević, Vojin Jovanović i Milena Vujošević Janičić.
Slika iznad prikazuje svojstva izdvojena iz potpisa metoda, modifikatora pristupa, reprezentacije u kompajleru i grafa toka podataka, koja se zatim prosleđuju klasifikatoru XGBoost. Dobijena oznaka hladne ili tople metode usmerava Oracle GraalVM Native Image da za hladne metode daje prednost manjem kodu, a za tople metode optimizacijama usmerenim na performanse.
Primena optimizacija usmerenih na performanse na metode koje se retko izvršavaju povećava veličinu binarnih datoteka bez odgovarajućeg poboljšanja performansi izvršavanja.
Tri zasebno obučena modela nude različite odnose veličine i performansi. S1 smanjuje veličinu binarnih datoteka za 9% do 13%, uz gubitak performansi od 1% do 2%. S2 postiže smanjenja od 15% do 25%, uz gubitak od 3% do 5%, dok S3 dostiže smanjenja od 17% do 35%, uz gubitak od 5% do 7%. Evaluacija takođe beleži vreme prevođenja kraće za 7% do 10% (Čugurović et al., 2026b).
GraalNN
GraalNN: Context-Sensitive Static Profiling with Graph Neural Networks
Publikacija ili skup: International Symposium on Code Generation and Optimization (CGO), Las Vegas, SAD.
Autori: Lazar Milikić, Milan Čugurović i Vojin Jovanović.
Slika iznad prikazuje graf toka kontrole metoda kodiran grafovskom neuronskom mrežom, nakon čega sledi predviđanje verovatnoća grananja. Tokom umetanja tela metoda, graf pozivaoca se pre kodiranja kombinuje sa grafom pozvane metode. Tako dobijeni profili grananja odražavaju kontekst poziva i usmeravaju optimizaciju kompajlera.
Učenje neposredno iz grafova toka kontrole smanjuje potrebu za ručnim osmišljavanjem svojstava koja opisuju strukturu programa.
Integrisan u GraalVM Native Image, okvir postiže ubrzanje izvršavanja od 10.13% po geometrijskoj sredini na standardnim industrijskim benčmarkovima, uz povećanje veličine binarnih datoteka od 2.94%, u odnosu na prevođenje bez profila. Sa optimizacionim budžetom O3, stvarne mikroservisne aplikacije ostvaruju povećanje propusnosti od 13.16%, uz povećanje veličine binarnih datoteka od 5.05%, u odnosu na prevođenje bez profila sa istim budžetom (Milikić et al., 2025).
GraalSP
GraalSP: Polyglot, Efficient, and Robust Machine Learning-Based Static Profiler
Publikacija ili skup: Journal of Systems and Software (Elsevier).
Autori: Milan Čugurović, Milena Vujošević Janičić, Vojin Jovanović i Thomas Würthinger.
Prva slika prikazuje arhitekture stabla odlučivanja, ansambla XGBoost i duboke neuronske mreže ispitane za predviđanje grananja. Druga slika ilustruje svojstva koda i toka kontrole izdvojena za grananje u metodu heapSort. Ova svojstva ulaze u primenjeni lagani regresioni model XGBoost, čija predviđanja verovatnoća grananja usmeravaju optimizaciju kompajlera.
Skup svojstava primenjiv je na jezike koji se prevode u bajtkod jezika Java, uključujući Java, Scala i Kotlin. Heuristike za verovatnoće grananja štite odluke o optimizaciji od netačnih procena i odstupajućih vrednosti.
Profajler je integrisan u kompajler Graal. Evaluacija na 28 benčmarkova pokazuje smanjenje vremena izvršavanja od 7.46% po geometrijskoj sredini u poređenju sa podrazumevanom konfiguracijom kompajlera, koja dodeljuje uniformne verovatnoće grananja. GraalSP omogućava optimizaciju vođenu profilom bez potrebe da programeri prikupljaju dinamički profil ili održavaju zasebno radno opterećenje za profilisanje (Čugurović et al., 2024b).
Pregled profilisanja
Dynamic Profiling and Static Prediction of the Program Execution Profiles in the Context of Compiler Optimizations
Publikacija ili skup: InfoM: Journal of Information Technology and Multimedia Systems, tom 23, broj 78, strane 17 do 27.
Autori: Milan Čugurović.
Slika iznad prikazuje statička svojstva koda prikupljena zajedno sa profilima izvršavanja instrumentovanih programa. Odgovarajuća svojstva i profili spajaju se u označen skup podataka, koji se zatim koristi za obučavanje modela koji predviđa profile izvršavanja neposredno iz koda programa.
Optimizacije vođene profilom koriste profile izvršavanja za odluke poput umetanja tela metoda i rasporeda koda. Ovaj pregledni rad poredi dinamičko profilisanje zasnovano na instrumentaciji i na uzorkovanju, objašnjavajući kako kvalitet profila, trošak prikupljanja i ograničenja resursa utiču na njihovu primenu. Zatim razmatra statičko predviđanje profila kao način da se ovi podaci dobiju neposredno iz koda programa tokom prevođenja.
Rad prati razvoj od ručno pisanih heuristika do modela mašinskog učenja, razlikujući klasifikaciju grananja od regresije koja predviđa verovatnoće izvršavanja. Razmatra kako svojstva izvedena iz izvornog koda, međureprezentacija kompajlera i izvršnog koda opisuju ponašanje programa i izdvaja osmišljavanje svojstava kao ključni izazov. Poređenje ukazuje na to kada je svaki pristup profilisanju koristan i motiviše dalji rad na regresionim modelima i opštijim reprezentacijama programa (Čugurović, 2023c).
Patenti
Podesiva kompilacija
Tunable Machine Learning for Size-Aware Optimizing Compilation
Patentna prijava u SAD.
Datum: oktobar 2026. Status: Podneto.
Prijava se odnosi na podesivo mašinsko učenje za optimizaciju kompajlera koja uzima u obzir veličinu izvršne datoteke (Čugurović et al., 2026f).
Ugrađivanja signatura
Static Profiling Using Signature Embeddings
Patentna prijava u SAD.
Datum: avgust 2026. Status: Podneto.
Prijava se odnosi na upotrebu vektorskih reprezentacija potpisa metoda u statičkom profilisanju (Čugurović et al., 2026d).
GNN profilisanje
Static Profiling with Graph Neural Networks
Datum: 7. maj 2026. Status: Objavljeno.
Prijava obuhvata predviđanje učestalosti grananja iz grafova toka kontrole pomoću grafovskih neuronskih mreža. Predviđanja obrazuju profile programa koji usmeravaju optimizaciju kompajlera (Jovanović et al., 2026).
Klasifikacija vrućih metoda
Machine Learning Method Hotness Classification in Optimizing Compilers
Patentna prijava u SAD.
Datum: decembar 2025. Status: Podneto.
Prijava se odnosi na klasifikaciju učestalosti izvršavanja metoda mašinskim učenjem u svrhu optimizacije kompajlera (Čugurović et al., 2025b).
ML statičko profilisanje
Machine Learning Based Static Profiling
Datum: 31. jul 2025. Status: Objavljeno.
Prijava obuhvata predviđanje učestalosti grananja regresionim modelom koji koristi svojstva izdvojena iz međureprezentacije programa. Dobijeni statički profil usmerava optimizaciju koda (Čugurović et al., 2025a).
Odbranjene teze
Doktorska disertacija
Prediction of Program Profiles Using Machine Learning Techniques
Izvorni naslov: Predviđanje profila izvršavanja programa tehnikama mašinskog učenja.
Autor: Milan Čugurović.
Ustanova: Matematički fakultet, Univerzitet u Beogradu.
Datum odbrane: 24. decembar 2025.
Mentor: Milena Vujošević Janičić, Matematički fakultet, Univerzitet u Beogradu.
Članovi komisije:
- Filip Marić, Matematički fakultet, Univerzitet u Beogradu.
- Mladen Nikolić, Matematički fakultet, Univerzitet u Beogradu.
- Saša Misailović, University of Illinois Urbana-Champaign.
Ova disertacija predstavlja GraalSP, koji pomoću modela XGBoost i korektivnih heuristika predviđa verovatnoće grananja iz grafovske reprezentacije visokog nivoa kompajlera Graal za jezike koji se prevode u bajtkod jezika Java. Integrisan u Enterprise GraalVM Native Image, postiže ubrzanje izvršavanja od 7.46% po geometrijskoj sredini na 28 benčmarkova u odnosu na osnovnu konfiguraciju sa uniformnim profilom. Disertacija takođe uvodi GraalSP-PLog, alat za ispitivanje pojedinačnih predviđanja i grešaka modela (Čugurović, 2025d).
Master rad
Improving the GraalMHC Static Profiler Using Semantics from Method Names
Izvorni naslov: Poboljšanje statičkog profajlera GraalMHC korišćenjem semantike iz imena metoda.
Autor: Stefan Milenković.
Ustanova: Matematički fakultet, Univerzitet u Beogradu.
Datum odbrane: 7. avgust 2026.
Mentor: Milena Vujošević Janičić, Matematički fakultet, Univerzitet u Beogradu.
Članovi komisije:
- Mirko Spasić, Matematički fakultet, Univerzitet u Beogradu.
- Milan Čugurović, Matematički fakultet, Univerzitet u Beogradu.
Ovaj rad proširuje porodicu profajlera GraalMHC u GraalVM Native Image vektorskim reprezentacijama reči iz potpuno kvalifikovanih imena metoda, poredeći GloVe sa namenski obučenim reprezentacijama. U poređenju sa profajlerom bez semantike imena metoda, daje izvršne datoteke manje za 4.7% do 6.4% na nivou O2, uz pogoršanje performansi izvršavanja manje od 2.4%, i datoteke manje za 8.4% do 10.8% na nivou O3, uz pogoršanje do 4.4%. Namenske reprezentacije postižu bolje rezultate od GloVe, a zauzimaju 2.77 MB u odnosu na 163 MB (Milenković, 2026).
Literatura
- Vojin Jovanović, Milan Čugurović, Lazar Milikić: Static Profiling with Graph Neural Networks. US Letter Patent Application (published), US20260126977A1, 2026. URL
- Stefan Milenković, Milan Čugurović, Milena Vujošević Janičić: Improving ML-Based Static Profiling Using Method Names. Book of Abstracts of the 15th Symposium "Mathematics and Applications", 36, 2025. URL
- Stefan Milenković: Improving the GraalMHC Static Profiler Using Semantics from Method Names. Masters Thesis, Faculty of Mathematics, University of Belgrade, 2026. URL
- Lazar Milikić, Milan Čugurović, Vojin Jovanović: GraalNN: Context-Sensitive Static Profiling with Graph Neural Networks. Proceedings of the 23rd ACM/IEEE International Symposium on Code Generation and Optimization, 123–136, 2025. DOI
- Ivan Ristović, Milan Čugurović, Strahinja Stanojević, Marko Spasić, Vesna Marinković, Milena Vujošević Janičić: Efficient Control-Flow Graph Traversal. Proceedings of the 30th YU INFO Conference, 89–94, 2024. URL
- Ivan Ristović, Milan Čugurović, Strahinja Stanojević, Marko Spasić, Vesna Marinković, Milena Vujošević Janičić: Machine Learning-Driven Prediction of Optimal Control Flow Graph Traversal Strategy. Serbian Journal of Electrical Engineering, 22(3), 353–376, 2025. DOI
- Marko Spasić, Ivan Ristović, Strahinja Stanojević, Milan Čugurović, Milica Karličić, Milena Vujošević Janičić: Evaluating GraalVM Compiler Performance using a Distributed Computing Cluster. Proceedings of the 15th Serbian Mathematical Congress, 114, 2024. URL
- Milan Čugurović: Prediction of Program Profiles Using Machine Learning Techniques. Seminar for Artificial Intelligence, Mathematical Institute SASA, 2022. URL
- Milan Čugurović, Ivan Ristović, Strahinja Stanojević, Marko Spasić, Vesna Marinković, Milena Vujošević Janičić: Comparative Analysis of Program Control Flow Graph Traversal Algorithms. Proceedings of the 13th Symposium "Mathematics and Applications", 79, 2023a. URL
- Milan Čugurović, Milena Vujošević Janičić: Creation and Analysis of a Dataset for Predicting Execution Probabilities of Virtual Methods in Object-Oriented Programs. Artificial Intelligence: Book of Abstracts, 126–127, 2023b. URL
- Milan Čugurović: Dynamic Profiling and Static Prediction of the Program Execution Profiles in the Context of Compiler Optimizations. InfoM: Journal of Information Technology and Multimedia Systems, 23(78), 17–27, 2023c. URL
- Milan Čugurović, Milena Vujošević Janičić: GraalSP Profiles Logger: A Tool for Analyzing and Interpreting Predictions of the ML-Based Static Profilers. Artificial Intelligence: Book of Abstracts, 15–16, 2024a. URL
- Milan Čugurović, Milena Vujošević Janičić, Vojin Jovanović, Thomas Würthinger: GraalSP: Polyglot, efficient, and robust machine learning-based static profiler. Journal of Systems and Software, 213, 112058, 2024b. DOI
- Milan Čugurović, Milena Vujošević Janičić, Vojin Jovanović, Thomas Würthinger: Machine Learning Based Static Profiling. US Letter Patent Application (published), US20250244979A1, 2025a. URL
- Milan Čugurović, Milena Vujošević Janičić, Aleksandar Prokopec, Boris Spasojević, Vojin Jovanović: Machine Learning Method Hotness Classification in Optimizing Compilers. US Letter Patent Application (filed), 2025b.
- Milan Čugurović, Ivan Ristović, Strahinja Stanojević, Marko Spasić, Vesna Marinković, Milena Vujošević Janičić: ML-Driven Prediction of Optimal Control Flow Graph Traversal Algorithm in Modern Applications. 2025 12th International Conference on Electrical, Electronic and Computing Engineering (IcETRAN), 1–6, 2025c. DOI
- Milan Čugurović: Prediction of Program Profiles Using Machine Learning Techniques. Doctoral Dissertation, Faculty of Mathematics, University of Belgrade, 2025d. URL
- Milan Čugurović, Aleksandar Prokopec, Boris Spasojević, Vojin Jovanović, Milena Vujošević Janičić: GraalMHC++: A Tunable ML Framework for Size-Aware Optimizing Compilation. Journal of Systems and Software, 2026a. URL
- Milan Čugurović, Aleksandar Prokopec, Boris Spasojević, Vojin Jovanović, Milena Vujošević Janičić: GraalMHC: ML-Based Method-Hotness Classification for Binary-Size Reduction in Optimizing Compilers. Proceedings of the 35th ACM SIGPLAN International Conference on Compiler Construction, 1–13, 2026b. DOI
- Milan Čugurović: Prediction of Program Execution Profiles Using Machine Learning Techniques. Invited talk at INFORMATIKA 2026: New Trends in the Development of Information Systems, Serbian Informatics Society, 2026c. URL
- Milan Čugurović, Stefan Milenković, Lazar Milikić, Milena Vujošević Janičić, Aleksandar Prokopec, Boris Spasojević, Vojin Jovanović: Static Profiling Using Signature Embeddings. US Letter Patent Application (filed), 2026d.
- Milan Čugurović, Aleksandar Prokopec, Boris Spasojević, Vojin Jovanović, Milena Vujošević Janičić: The Promise of Static Profiling: Exploring the Limits. Companion Proceedings of the 10th International Conference on the Art, Science, and Engineering of Programming, 4–8, 2026e. DOI
- Milan Čugurović, Milena Vujošević Janičić, Aleksandar Prokopec, Boris Spasojević, Vojin Jovanović: Tunable Machine Learning for Size-Aware Optimizing Compilation. US Letter Patent Application (filed), 2026f.

