Статичко профилисање засновано на машинском учењу
Ова страница представља истраживачки пројекат настао у сарадњи Математичког факултета Универзитета у Београду и компаније Oracle. Пројекат се бави применом машинског учења за предвиђање профила у компајлеру GraalVM Native Image, који преводи програме пре извршавања. Модели предвиђају вероватноће гранања и учесталост извршавања метода. Ова предвиђања усмеравају одлуке компајлера о уметању тела метода, оптимизацијама петљи, распореду кода и односу између брзине извршавања и величине извршне датотеке.
Профил програма описује његово понашање током извршавања, укључујући вероватноће гранања и учесталост извршавања метода и основних блокова. Код динамичког профилисања заснованог на инструментацији, оптимизација вођена профилом (PGO) прикупља ове податке извршавањем инструментоване верзије програма над репрезентативним радним оптерећењима, а затим поново преводи апликацију уз прикупљени профил. Динамичко профилисање је стандардни приступ добијању висококвалитетних профила за апликације високих перформанси. Додатно превођење и извршавање ради профилисања продужавају поступак изградње, док инструментација повећава време извршавања и потрошњу меморије. Ови трошкови се нагомилавају у континуираној интеграцији и могу премашити ограничења ресурса уграђених система. Програмери морају да осмисле репрезентативна радна оптерећења и одржавају их како се код мења, а настала сложеност и захтеви за ресурсима ограничавају примену овог приступа. Статички профајлер предвиђа профил из кода програма током превођења. Тако компајлер добија податке о профилу у једном поступку изградње, без извршавања апликације која се преводи ради профилисања. Модели машинског учења, претходно обучени на профилима других програма, уче обрасце који омогућавају тачна предвиђања.
Статичко профилисање повезује компаније и универзитете више од три деценије. На конференцији MICRO 1994, Wu и Larus, тада у компанији Sequent Computer Systems и на универзитету University of Wisconsin–Madison, представили су темељни рад о статичкој анализи учесталости гранања и профила програма. Систем VESPA, који су на конференцији OOPSLA 2021 представили истраживачи компаније Facebook, данас Meta, и универзитета Federal University of Minas Gerais (UFMG), користи неуронску мрежу за статичко профилисање при оптимизацији бинарног кода. Rotem и Cummins у компанији Meta користе машинско учење за оптимизацију вођену профилом без профила саме апликације. Raman и Li у компанији Google уче вероватноће гранања из радних оптерећења центара података. Овај пројекат доноси статичко профилисање засновано на машинском учењу у Oracle GraalVM Native Image, у коме је доступно као уграђена могућност.
У оквиру пројекта настали су и радови о обиласку графова тока контроле (Ristović et al., 2025) (Čugurović et al., 2025c) (Ristović et al., 2024) (Čugurović et al., 2023a) и евалуацији перформанси система GraalVM (Spasić et al., 2024). Резултати статичког профилисања представљени су у проширеним апстрактима и излагањима (Milenković et al., 2025) (Čugurović and Janičić, 2024a) (Čugurović and Janičić, 2023b) (Čugurović, 2022), укључујући предавање по позиву на скупу INFORMATIKA 2026 (Čugurović, 2026c).
Изабрани радови
Уграђивања
Profiling Beyond IR: Method-Signature Embeddings for Static Profiling
Аутори: Стефан Миленковић, Лазар Миликић, Милан Чугуровић, Александар Прокопец, Борис Спасојевић, Војин Јовановић и Милена Вујошевић Јаничић.
Слика за GraalNN приказује разлагање потписа метода на токене и њихово кодирање у сажету репрезентацију која се придружује својствима графа тока контроле ради предвиђања вероватноћа гранања. Слика за GraalMHC приказује засебно кодирање имена пакета, класе и метода и њихово додавање постојећим својствима програма. На основу њих методе се класификују као хладне или топле, што усмерава стратегију њиховог превођења.
Имена пакета, класа и метода садрже семантичке назнаке које структурна својства програма остављају неискоришћеним. Овај рукопис додаје сажете векторске репрезентације идентификатора у два профајлера за GraalVM Native Image.
У поређењу са основном верзијом без векторских репрезентација имена, проширење система GraalNN смањује величину бинарних датотека за Barista за 4.14% и време превођења за 1.58% на нивоу O2. На нивоу O3 смањења достижу 6.53% и 5.51%, уз непромењене или благо побољшане перформансе извршавања. Проширење система GraalMHC смањује величину бинарних датотека до приближно 11%, уз губитак перформанси извршавања од неколико процената. Подаци његових наменских векторских репрезентација заузимају 2.77 MB, у поређењу са 163 MB за GloVe.
GraalMHC++
GraalMHC++: A Tunable ML Framework for Size-Aware Optimizing Compilation
Публикација или скуп: Journal of Systems and Software (Elsevier).
Тематски број Special Issue on AI Techniques for Performance, Reliability, and Sustainability of Modern Software Systems.
Аутори: Милан Чугуровић, Александар Прокопец, Борис Спасојевић, Војин Јовановић и Милена Вујошевић Јаничић.
Слика изнад приказује статичка својства издвојена из потписа метода, модификатора приступа, репрезентације у компајлеру и графа тока података. Један модел XGBoost претвара ова својства у оцену учесталости извршавања, а подесиви праг претвара оцену у класификацију метода као хладних или топлих. Та класификација одређује превођење усмерено на мању величину или на боље перформансе.
Оптимизације попут уметања тела метода и одмотавања петљи могу повећати бинарне датотеке чак и када се примењују на код који се ретко извршава. Праг одлучивања доступан је као опција компајлера, што омогућава различите односе величине и перформанси без обучавања и дистрибуције засебних модела.
На микросервисима Barista и апликацијама Renaissance, на нивоима O2 и O3, прагови од 0.1 до 0.7 смањују величину бинарних датотека за 8% до 32%, уз губитак перформанси од 1% до 8%. Праг од 0.3 даје бинарне датотеке мање за 12% до 21%, уз губитак перформанси од 1% до 3%. Агресивнији праг од 0.9 доноси уштеде у величини до 43%. Оквир је интегрисан у Oracle GraalVM Native Image (Čugurović et al., 2026a).
Границе статичког профилисања
The Promise of Static Profiling: Exploring the Limits
Публикација или скуп: MoreVMs Workshop, Programming 2026, Минхен, Немачка.
Аутори: Милан Чугуровић, Александар Прокопец, Борис Спасојевић, Војин Јовановић и Милена Вујошевић Јаничић.
Слика изнад приказује динамичко профилисање праћено избором профила гранања, броја позива, виртуелних позива или монитора, појединачно или у комбинацији. Задржани профили усмеравају превођење, а евалуација добијених програма процењује побољшања перформанси и величине бинарних датотека која би идеалан статички профајлер могао да постигне за иста радна оптерећења.
Већина статичких профајлера предвиђа понашање гранања, док је вредност других врста профила мање истражена. Процене важе за испитана радна оптерећења у оквиру модела профилисања компајлера.
На 31 самосталној апликацији и 7 микросервисних апликација, комбиновање све четири врсте профила побољшава перформансе извршавања самосталних апликација за 25% и пропусност микросервиса за 40%. Такође смањује величину бинарних датотека за 20.7% и 30%, редом. Резултати издвајају предвиђање броја позива и виртуелних позива као перспективне правце проширивања статичког профилисања изван вероватноћа гранања (Čugurović et al., 2026e).
GraalMHC
GraalMHC: ML-Based Method-Hotness Classification for Binary-Size Reduction in Optimizing Compilers
Публикација или скуп: International Conference on Compiler Construction (CC), Сиднеј, Аустралија.
Аутори: Милан Чугуровић, Александар Прокопец, Борис Спасојевић, Војин Јовановић и Милена Вујошевић Јаничић.
Слика изнад приказује својства издвојена из потписа метода, модификатора приступа, репрезентације у компајлеру и графа тока података, која се затим прослеђују класификатору XGBoost. Добијена ознака хладне или топле методе усмерава Oracle GraalVM Native Image да за хладне методе даје предност мањем коду, а за топле методе оптимизацијама усмереним на перформансе.
Примена оптимизација усмерених на перформансе на методе које се ретко извршавају повећава величину бинарних датотека без одговарајућег побољшања перформанси извршавања.
Три засебно обучена модела нуде различите односе величине и перформанси. S1 смањује величину бинарних датотека за 9% до 13%, уз губитак перформанси од 1% до 2%. S2 постиже смањења од 15% до 25%, уз губитак од 3% до 5%, док S3 достиже смањења од 17% до 35%, уз губитак од 5% до 7%. Евалуација такође бележи време превођења краће за 7% до 10% (Čugurović et al., 2026b).
GraalNN
GraalNN: Context-Sensitive Static Profiling with Graph Neural Networks
Публикација или скуп: International Symposium on Code Generation and Optimization (CGO), Лас Вегас, САД.
Аутори: Лазар Миликић, Милан Чугуровић и Војин Јовановић.
Слика изнад приказује граф тока контроле метода кодиран графовском неуронском мрежом, након чега следи предвиђање вероватноћа гранања. Током уметања тела метода, граф позиваоца се пре кодирања комбинује са графом позване методе. Тако добијени профили гранања одражавају контекст позива и усмеравају оптимизацију компајлера.
Учење непосредно из графова тока контроле смањује потребу за ручним осмишљавањем својстава која описују структуру програма.
Интегрисан у GraalVM Native Image, оквир постиже убрзање извршавања од 10.13% по геометријској средини на стандардним индустријским бенчмарковима, уз повећање величине бинарних датотека од 2.94%, у односу на превођење без профила. Са оптимизационим буџетом O3, стварне микросервисне апликације остварују повећање пропусности од 13.16%, уз повећање величине бинарних датотека од 5.05%, у односу на превођење без профила са истим буџетом (Milikić et al., 2025).
GraalSP
GraalSP: Polyglot, Efficient, and Robust Machine Learning-Based Static Profiler
Публикација или скуп: Journal of Systems and Software (Elsevier).
Аутори: Милан Чугуровић, Милена Вујошевић Јаничић, Војин Јовановић и Thomas Würthinger.
Прва слика приказује архитектуре стабла одлучивања, ансамбла XGBoost и дубоке неуронске мреже испитане за предвиђање гранања. Друга слика илуструје својства кода и тока контроле издвојена за гранање у методу heapSort. Ова својства улазе у примењени лагани регресиони модел XGBoost, чија предвиђања вероватноћа гранања усмеравају оптимизацију компајлера.
Скуп својстава примењив је на језике који се преводе у бајткод језика Java, укључујући Java, Scala и Kotlin. Хеуристике за вероватноће гранања штите одлуке о оптимизацији од нетачних процена и одступајућих вредности.
Профајлер је интегрисан у компајлер Graal. Евалуација на 28 бенчмаркова показује смањење времена извршавања од 7.46% по геометријској средини у поређењу са подразумеваном конфигурацијом компајлера, која додељује униформне вероватноће гранања. GraalSP омогућава оптимизацију вођену профилом без потребе да програмери прикупљају динамички профил или одржавају засебно радно оптерећење за профилисање (Čugurović et al., 2024b).
Преглед профилисања
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.
Аутори: Милан Чугуровић.
Слика изнад приказује статичка својства кода прикупљена заједно са профилима извршавања инструментованих програма. Одговарајућа својства и профили спајају се у означен скуп података, који се затим користи за обучавање модела који предвиђа профиле извршавања непосредно из кода програма.
Оптимизације вођене профилом користе профиле извршавања за одлуке попут уметања тела метода и распореда кода. Овај прегледни рад пореди динамичко профилисање засновано на инструментацији и на узорковању, објашњавајући како квалитет профила, трошак прикупљања и ограничења ресурса утичу на њихову примену. Затим разматра статичко предвиђање профила као начин да се ови подаци добију непосредно из кода програма током превођења.
Рад прати развој од ручно писаних хеуристика до модела машинског учења, разликујући класификацију гранања од регресије која предвиђа вероватноће извршавања. Разматра како својства изведена из изворног кода, међурепрезентација компајлера и извршног кода описују понашање програма и издваја осмишљавање својстава као кључни изазов. Поређење указује на то када је сваки приступ профилисању користан и мотивише даљи рад на регресионим моделима и општијим репрезентацијама програма (Čugurović, 2023c).
Патенти
Подесива компилација
Tunable Machine Learning for Size-Aware Optimizing Compilation
Патентна пријава у САД.
Датум: октобар 2026. Статус: Поднето.
Пријава се односи на подесиво машинско учење за оптимизацију компајлера која узима у обзир величину извршне датотеке (Čugurović et al., 2026f).
Уграђивања сигнатура
Static Profiling Using Signature Embeddings
Патентна пријава у САД.
Датум: август 2026. Статус: Поднето.
Пријава се односи на употребу векторских репрезентација потписа метода у статичком профилисању (Čugurović et al., 2026d).
GNN профилисање
Static Profiling with Graph Neural Networks
Датум: 7. мај 2026. Статус: Објављено.
Пријава обухвата предвиђање учесталости гранања из графова тока контроле помоћу графовских неуронских мрежа. Предвиђања образују профиле програма који усмеравају оптимизацију компајлера (Jovanović et al., 2026).
Класификација врућих метода
Machine Learning Method Hotness Classification in Optimizing Compilers
Патентна пријава у САД.
Датум: децембар 2025. Статус: Поднето.
Пријава се односи на класификацију учесталости извршавања метода машинским учењем у сврху оптимизације компајлера (Čugurović et al., 2025b).
ML статичко профилисање
Machine Learning Based Static Profiling
Датум: 31. јул 2025. Статус: Објављено.
Пријава обухвата предвиђање учесталости гранања регресионим моделом који користи својства издвојена из међурепрезентације програма. Добијени статички профил усмерава оптимизацију кода (Čugurović et al., 2025a).
Одбрањене тезе
Докторска дисертација
Prediction of Program Profiles Using Machine Learning Techniques
Изворни наслов: Предвиђање профила извршавања програма техникама машинског учења.
Аутор: Милан Чугуровић.
Установа: Математички факултет, Универзитет у Београду.
Датум одбране: 24. децембар 2025.
Ментор: Милена Вујошевић Јаничић, Математички факултет, Универзитет у Београду.
Чланови комисије:
- Филип Марић, Математички факултет, Универзитет у Београду.
- Младен Николић, Математички факултет, Универзитет у Београду.
- Саша Мисаиловић, University of Illinois Urbana-Champaign.
Ова дисертација представља GraalSP, који помоћу модела XGBoost и корективних хеуристика предвиђа вероватноће гранања из графовске репрезентације високог нивоа компајлера Graal за језике који се преводе у бајткод језика Java. Интегрисан у Enterprise GraalVM Native Image, постиже убрзање извршавања од 7.46% по геометријској средини на 28 бенчмаркова у односу на основну конфигурацију са униформним профилом. Дисертација такође уводи GraalSP-PLog, алат за испитивање појединачних предвиђања и грешака модела (Čugurović, 2025d).
Мастер рад
Improving the GraalMHC Static Profiler Using Semantics from Method Names
Изворни наслов: Побољшање статичког профајлера GraalMHC коришћењем семантике из имена метода.
Аутор: Стефан Миленковић.
Установа: Математички факултет, Универзитет у Београду.
Датум одбране: 7. август 2026.
Ментор: Милена Вујошевић Јаничић, Математички факултет, Универзитет у Београду.
Чланови комисије:
- Мирко Спасић, Математички факултет, Универзитет у Београду.
- Милан Чугуровић, Математички факултет, Универзитет у Београду.
Овај рад проширује породицу профајлера GraalMHC у GraalVM Native Image векторским репрезентацијама речи из потпуно квалификованих имена метода, поредећи GloVe са наменски обученим репрезентацијама. У поређењу са профајлером без семантике имена метода, даје извршне датотеке мање за 4.7% до 6.4% на нивоу O2, уз погоршање перформанси извршавања мање од 2.4%, и датотеке мање за 8.4% до 10.8% на нивоу O3, уз погоршање до 4.4%. Наменске репрезентације постижу боље резултате од GloVe, а заузимају 2.77 MB у односу на 163 MB (Milenković, 2026).
Литература
- 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.

